MyOFT.json•2.62 MB
{
"compilerInput": "{\"language\":\"Solidity\",\"sources\":{\"myOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\r\\npragma solidity ^0.8.22;\\r\\n\\r\\n// This is a simple implementation of an OFT (Omnichain Fungible Token) contract\\r\\n// MyOFT.json is the hardhat compiled artifact for this contract\\r\\n\\r\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\r\\nimport { OFT } from \\\"@layerzerolabs/oft-evm/contracts/OFT.sol\\\";\\r\\n\\r\\ncontract MyOFT is OFT {\\r\\n\\r\\n constructor(\\r\\n string memory _name,\\r\\n string memory _symbol,\\r\\n uint256 _initialSupply,\\r\\n address _lzEndpoint,\\r\\n address _delegate\\r\\n ) OFT(_name, _symbol, _lzEndpoint, _delegate) Ownable(_delegate) {\\r\\n _mint(_delegate, _initialSupply * 10 ** decimals());\\r\\n }\\r\\n}\\r\\n\"},\"@layerzerolabs/oft-evm/contracts/OFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ERC20 } from \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\nimport { IOFT, OFTCore } from \\\"./OFTCore.sol\\\";\\n\\n/**\\n * @title OFT Contract\\n * @dev OFT is an ERC-20 token that extends the functionality of the OFTCore contract.\\n */\\nabstract contract OFT is OFTCore, ERC20 {\\n /**\\n * @dev Constructor for the OFT contract.\\n * @param _name The name of the OFT.\\n * @param _symbol The symbol of the OFT.\\n * @param _lzEndpoint The LayerZero endpoint address.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n */\\n constructor(\\n string memory _name,\\n string memory _symbol,\\n address _lzEndpoint,\\n address _delegate\\n ) ERC20(_name, _symbol) OFTCore(decimals(), _lzEndpoint, _delegate) {}\\n\\n /**\\n * @dev Retrieves the address of the underlying ERC20 implementation.\\n * @return The address of the OFT token.\\n *\\n * @dev In the case of OFT, address(this) and erc20 are the same contract.\\n */\\n function token() public view returns (address) {\\n return address(this);\\n }\\n\\n /**\\n * @notice Indicates whether the OFT contract requires approval of the 'token()' to send.\\n * @return requiresApproval Needs approval of the underlying token implementation.\\n *\\n * @dev In the case of OFT where the contract IS the token, approval is NOT required.\\n */\\n function approvalRequired() external pure virtual returns (bool) {\\n return false;\\n }\\n\\n /**\\n * @dev Burns tokens from the sender's specified balance.\\n * @param _from The address to debit the tokens from.\\n * @param _amountLD The amount of tokens to send in local decimals.\\n * @param _minAmountLD The minimum amount to send in local decimals.\\n * @param _dstEid The destination chain ID.\\n * @return amountSentLD The amount sent in local decimals.\\n * @return amountReceivedLD The amount received in local decimals on the remote.\\n */\\n function _debit(\\n address _from,\\n uint256 _amountLD,\\n uint256 _minAmountLD,\\n uint32 _dstEid\\n ) internal virtual override returns (uint256 amountSentLD, uint256 amountReceivedLD) {\\n (amountSentLD, amountReceivedLD) = _debitView(_amountLD, _minAmountLD, _dstEid);\\n\\n // @dev In NON-default OFT, amountSentLD could be 100, with a 10% fee, the amountReceivedLD amount is 90,\\n // therefore amountSentLD CAN differ from amountReceivedLD.\\n\\n // @dev Default OFT burns on src.\\n _burn(_from, amountSentLD);\\n }\\n\\n /**\\n * @dev Credits tokens to the specified address.\\n * @param _to The address to credit the tokens to.\\n * @param _amountLD The amount of tokens to credit in local decimals.\\n * @dev _srcEid The source chain ID.\\n * @return amountReceivedLD The amount of tokens ACTUALLY received in local decimals.\\n */\\n function _credit(\\n address _to,\\n uint256 _amountLD,\\n uint32 /*_srcEid*/\\n ) internal virtual override returns (uint256 amountReceivedLD) {\\n if (_to == address(0x0)) _to = address(0xdead); // _mint(...) does not support address(0x0)\\n // @dev Default OFT mints on dst.\\n _mint(_to, _amountLD);\\n // @dev In the case of NON-default OFT, the _amountLD MIGHT not be == amountReceivedLD.\\n return _amountLD;\\n }\\n}\\n\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\"},\"@layerzerolabs/oft-evm/contracts/OFTCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/IERC20.sol\\\";\\n\\nimport { OApp, Origin } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol\\\";\\nimport { OAppOptionsType3 } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol\\\";\\nimport { IOAppMsgInspector } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\\\";\\n\\nimport { OAppPreCrimeSimulator } from \\\"@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol\\\";\\n\\nimport { IOFT, SendParam, OFTLimit, OFTReceipt, OFTFeeDetail, MessagingReceipt, MessagingFee } from \\\"./interfaces/IOFT.sol\\\";\\nimport { OFTMsgCodec } from \\\"./libs/OFTMsgCodec.sol\\\";\\nimport { OFTComposeMsgCodec } from \\\"./libs/OFTComposeMsgCodec.sol\\\";\\n\\n/**\\n * @title OFTCore\\n * @dev Abstract contract for the OftChain (OFT) token.\\n */\\nabstract contract OFTCore is IOFT, OApp, OAppPreCrimeSimulator, OAppOptionsType3 {\\n using OFTMsgCodec for bytes;\\n using OFTMsgCodec for bytes32;\\n\\n // @notice Provides a conversion rate when swapping between denominations of SD and LD\\n // - shareDecimals == SD == shared Decimals\\n // - localDecimals == LD == local decimals\\n // @dev Considers that tokens have different decimal amounts on various chains.\\n // @dev eg.\\n // For a token\\n // - locally with 4 decimals --> 1.2345 => uint(12345)\\n // - remotely with 2 decimals --> 1.23 => uint(123)\\n // - The conversion rate would be 10 ** (4 - 2) = 100\\n // @dev If you want to send 1.2345 -> (uint 12345), you CANNOT represent that value on the remote,\\n // you can only display 1.23 -> uint(123).\\n // @dev To preserve the dust that would otherwise be lost on that conversion,\\n // we need to unify a denomination that can be represented on ALL chains inside of the OFT mesh\\n uint256 public immutable decimalConversionRate;\\n\\n // @notice Msg types that are used to identify the various OFT operations.\\n // @dev This can be extended in child contracts for non-default oft operations\\n // @dev These values are used in things like combineOptions() in OAppOptionsType3.sol.\\n uint16 public constant SEND = 1;\\n uint16 public constant SEND_AND_CALL = 2;\\n\\n // Address of an optional contract to inspect both 'message' and 'options'\\n address public msgInspector;\\n event MsgInspectorSet(address inspector);\\n\\n /**\\n * @dev Constructor.\\n * @param _localDecimals The decimals of the token on the local chain (this chain).\\n * @param _endpoint The address of the LayerZero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n */\\n constructor(uint8 _localDecimals, address _endpoint, address _delegate) OApp(_endpoint, _delegate) {\\n if (_localDecimals < sharedDecimals()) revert InvalidLocalDecimals();\\n decimalConversionRate = 10 ** (_localDecimals - sharedDecimals());\\n }\\n\\n /**\\n * @notice Retrieves interfaceID and the version of the OFT.\\n * @return interfaceId The interface ID.\\n * @return version The version.\\n *\\n * @dev interfaceId: This specific interface ID is '0x02e49c2c'.\\n * @dev version: Indicates a cross-chain compatible msg encoding with other OFTs.\\n * @dev If a new feature is added to the OFT cross-chain msg encoding, the version will be incremented.\\n * ie. localOFT version(x,1) CAN send messages to remoteOFT version(x,1)\\n */\\n function oftVersion() external pure virtual returns (bytes4 interfaceId, uint64 version) {\\n return (type(IOFT).interfaceId, 1);\\n }\\n\\n /**\\n * @dev Retrieves the shared decimals of the OFT.\\n * @return The shared decimals of the OFT.\\n *\\n * @dev Sets an implicit cap on the amount of tokens, over uint64.max() will need some sort of outbound cap / totalSupply cap\\n * Lowest common decimal denominator between chains.\\n * Defaults to 6 decimal places to provide up to 18,446,744,073,709.551615 units (max uint64).\\n * For tokens exceeding this totalSupply(), they will need to override the sharedDecimals function with something smaller.\\n * ie. 4 sharedDecimals would be 1,844,674,407,370,955.1615\\n */\\n function sharedDecimals() public view virtual returns (uint8) {\\n return 6;\\n }\\n\\n /**\\n * @dev Sets the message inspector address for the OFT.\\n * @param _msgInspector The address of the message inspector.\\n *\\n * @dev This is an optional contract that can be used to inspect both 'message' and 'options'.\\n * @dev Set it to address(0) to disable it, or set it to a contract address to enable it.\\n */\\n function setMsgInspector(address _msgInspector) public virtual onlyOwner {\\n msgInspector = _msgInspector;\\n emit MsgInspectorSet(_msgInspector);\\n }\\n\\n /**\\n * @notice Provides the fee breakdown and settings data for an OFT. Unused in the default implementation.\\n * @param _sendParam The parameters for the send operation.\\n * @return oftLimit The OFT limit information.\\n * @return oftFeeDetails The details of OFT fees.\\n * @return oftReceipt The OFT receipt information.\\n */\\n function quoteOFT(\\n SendParam calldata _sendParam\\n )\\n external\\n view\\n virtual\\n returns (OFTLimit memory oftLimit, OFTFeeDetail[] memory oftFeeDetails, OFTReceipt memory oftReceipt)\\n {\\n uint256 minAmountLD = 0; // Unused in the default implementation.\\n uint256 maxAmountLD = IERC20(this.token()).totalSupply(); // Unused in the default implementation.\\n oftLimit = OFTLimit(minAmountLD, maxAmountLD);\\n\\n // Unused in the default implementation; reserved for future complex fee details.\\n oftFeeDetails = new OFTFeeDetail[](0);\\n\\n // @dev This is the same as the send() operation, but without the actual send.\\n // - amountSentLD is the amount in local decimals that would be sent from the sender.\\n // - amountReceivedLD is the amount in local decimals that will be credited to the recipient on the remote OFT instance.\\n // @dev The amountSentLD MIGHT not equal the amount the user actually receives. HOWEVER, the default does.\\n (uint256 amountSentLD, uint256 amountReceivedLD) = _debitView(\\n _sendParam.amountLD,\\n _sendParam.minAmountLD,\\n _sendParam.dstEid\\n );\\n oftReceipt = OFTReceipt(amountSentLD, amountReceivedLD);\\n }\\n\\n /**\\n * @notice Provides a quote for the send() operation.\\n * @param _sendParam The parameters for the send() operation.\\n * @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\\n * @return msgFee The calculated LayerZero messaging fee from the send() operation.\\n *\\n * @dev MessagingFee: LayerZero msg fee\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n */\\n function quoteSend(\\n SendParam calldata _sendParam,\\n bool _payInLzToken\\n ) external view virtual returns (MessagingFee memory msgFee) {\\n // @dev mock the amount to receive, this is the same operation used in the send().\\n // The quote is as similar as possible to the actual send() operation.\\n (, uint256 amountReceivedLD) = _debitView(_sendParam.amountLD, _sendParam.minAmountLD, _sendParam.dstEid);\\n\\n // @dev Builds the options and OFT message to quote in the endpoint.\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam, amountReceivedLD);\\n\\n // @dev Calculates the LayerZero fee for the send() operation.\\n return _quote(_sendParam.dstEid, message, options, _payInLzToken);\\n }\\n\\n /**\\n * @dev Executes the send operation.\\n * @param _sendParam The parameters for the send operation.\\n * @param _fee The calculated fee for the send() operation.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess funds.\\n * @return msgReceipt The receipt for the send operation.\\n * @return oftReceipt The OFT receipt information.\\n *\\n * @dev MessagingReceipt: LayerZero msg receipt\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable virtual returns (MessagingReceipt memory msgReceipt, OFTReceipt memory oftReceipt) {\\n return _send(_sendParam, _fee, _refundAddress);\\n }\\n\\n /**\\n * @dev Internal function to execute the send operation.\\n * @param _sendParam The parameters for the send operation.\\n * @param _fee The calculated fee for the send() operation.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess funds.\\n * @return msgReceipt The receipt for the send operation.\\n * @return oftReceipt The OFT receipt information.\\n *\\n * @dev MessagingReceipt: LayerZero msg receipt\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory msgReceipt, OFTReceipt memory oftReceipt) {\\n // @dev Applies the token transfers regarding this send() operation.\\n // - amountSentLD is the amount in local decimals that was ACTUALLY sent/debited from the sender.\\n // - amountReceivedLD is the amount in local decimals that will be received/credited to the recipient on the remote OFT instance.\\n (uint256 amountSentLD, uint256 amountReceivedLD) = _debit(\\n msg.sender,\\n _sendParam.amountLD,\\n _sendParam.minAmountLD,\\n _sendParam.dstEid\\n );\\n\\n // @dev Builds the options and OFT message to quote in the endpoint.\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam, amountReceivedLD);\\n\\n // @dev Sends the message to the LayerZero endpoint and returns the LayerZero msg receipt.\\n msgReceipt = _lzSend(_sendParam.dstEid, message, options, _fee, _refundAddress);\\n // @dev Formulate the OFT receipt.\\n oftReceipt = OFTReceipt(amountSentLD, amountReceivedLD);\\n\\n emit OFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, amountSentLD, amountReceivedLD);\\n }\\n\\n /**\\n * @dev Internal function to build the message and options.\\n * @param _sendParam The parameters for the send() operation.\\n * @param _amountLD The amount in local decimals.\\n * @return message The encoded message.\\n * @return options The encoded options.\\n */\\n function _buildMsgAndOptions(\\n SendParam calldata _sendParam,\\n uint256 _amountLD\\n ) internal view virtual returns (bytes memory message, bytes memory options) {\\n bool hasCompose;\\n // @dev This generated message has the msg.sender encoded into the payload so the remote knows who the caller is.\\n (message, hasCompose) = OFTMsgCodec.encode(\\n _sendParam.to,\\n _toSD(_amountLD),\\n // @dev Must be include a non empty bytes if you want to compose, EVEN if you dont need it on the remote.\\n // EVEN if you dont require an arbitrary payload to be sent... eg. '0x01'\\n _sendParam.composeMsg\\n );\\n // @dev Change the msg type depending if its composed or not.\\n uint16 msgType = hasCompose ? SEND_AND_CALL : SEND;\\n // @dev Combine the callers _extraOptions with the enforced options via the OAppOptionsType3.\\n options = combineOptions(_sendParam.dstEid, msgType, _sendParam.extraOptions);\\n\\n // @dev Optionally inspect the message and options depending if the OApp owner has set a msg inspector.\\n // @dev If it fails inspection, needs to revert in the implementation. ie. does not rely on return boolean\\n address inspector = msgInspector; // caches the msgInspector to avoid potential double storage read\\n if (inspector != address(0)) IOAppMsgInspector(inspector).inspect(message, options);\\n }\\n\\n /**\\n * @dev Internal function to handle the receive on the LayerZero endpoint.\\n * @param _origin The origin information.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address from the src chain.\\n * - nonce: The nonce of the LayerZero message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The encoded message.\\n * @dev _executor The address of the executor.\\n * @dev _extraData Additional data.\\n */\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address /*_executor*/, // @dev unused in the default implementation.\\n bytes calldata /*_extraData*/ // @dev unused in the default implementation.\\n ) internal virtual override {\\n // @dev The src sending chain doesnt know the address length on this chain (potentially non-evm)\\n // Thus everything is bytes32() encoded in flight.\\n address toAddress = _message.sendTo().bytes32ToAddress();\\n // @dev Credit the amountLD to the recipient and return the ACTUAL amount the recipient received in local decimals\\n uint256 amountReceivedLD = _credit(toAddress, _toLD(_message.amountSD()), _origin.srcEid);\\n\\n if (_message.isComposed()) {\\n // @dev Proprietary composeMsg format for the OFT.\\n bytes memory composeMsg = OFTComposeMsgCodec.encode(\\n _origin.nonce,\\n _origin.srcEid,\\n amountReceivedLD,\\n _message.composeMsg()\\n );\\n\\n // @dev Stores the lzCompose payload that will be executed in a separate tx.\\n // Standardizes functionality for executing arbitrary contract invocation on some non-evm chains.\\n // @dev The off-chain executor will listen and process the msg based on the src-chain-callers compose options passed.\\n // @dev The index is used when a OApp needs to compose multiple msgs on lzReceive.\\n // For default OFT implementation there is only 1 compose msg per lzReceive, thus its always 0.\\n endpoint.sendCompose(toAddress, _guid, 0 /* the index of the composed message*/, composeMsg);\\n }\\n\\n emit OFTReceived(_guid, _origin.srcEid, toAddress, amountReceivedLD);\\n }\\n\\n /**\\n * @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n * @param _origin The origin information.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address from the src chain.\\n * - nonce: The nonce of the LayerZero message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The LayerZero message.\\n * @param _executor The address of the off-chain executor.\\n * @param _extraData Arbitrary data passed by the msg executor.\\n *\\n * @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n * routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n */\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual override {\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Check if the peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint ID to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n *\\n * @dev Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual override returns (bool) {\\n return peers[_eid] == _peer;\\n }\\n\\n /**\\n * @dev Internal function to remove dust from the given local decimal amount.\\n * @param _amountLD The amount in local decimals.\\n * @return amountLD The amount after removing dust.\\n *\\n * @dev Prevents the loss of dust when moving amounts between chains with different decimals.\\n * @dev eg. uint(123) with a conversion rate of 100 becomes uint(100).\\n */\\n function _removeDust(uint256 _amountLD) internal view virtual returns (uint256 amountLD) {\\n return (_amountLD / decimalConversionRate) * decimalConversionRate;\\n }\\n\\n /**\\n * @dev Internal function to convert an amount from shared decimals into local decimals.\\n * @param _amountSD The amount in shared decimals.\\n * @return amountLD The amount in local decimals.\\n */\\n function _toLD(uint64 _amountSD) internal view virtual returns (uint256 amountLD) {\\n return _amountSD * decimalConversionRate;\\n }\\n\\n /**\\n * @dev Internal function to convert an amount from local decimals into shared decimals.\\n * @param _amountLD The amount in local decimals.\\n * @return amountSD The amount in shared decimals.\\n */\\n function _toSD(uint256 _amountLD) internal view virtual returns (uint64 amountSD) {\\n return uint64(_amountLD / decimalConversionRate);\\n }\\n\\n /**\\n * @dev Internal function to mock the amount mutation from a OFT debit() operation.\\n * @param _amountLD The amount to send in local decimals.\\n * @param _minAmountLD The minimum amount to send in local decimals.\\n * @dev _dstEid The destination endpoint ID.\\n * @return amountSentLD The amount sent, in local decimals.\\n * @return amountReceivedLD The amount to be received on the remote chain, in local decimals.\\n *\\n * @dev This is where things like fees would be calculated and deducted from the amount to be received on the remote.\\n */\\n function _debitView(\\n uint256 _amountLD,\\n uint256 _minAmountLD,\\n uint32 /*_dstEid*/\\n ) internal view virtual returns (uint256 amountSentLD, uint256 amountReceivedLD) {\\n // @dev Remove the dust so nothing is lost on the conversion between chains with different decimals for the token.\\n amountSentLD = _removeDust(_amountLD);\\n // @dev The amount to send is the same as amount received in the default implementation.\\n amountReceivedLD = amountSentLD;\\n\\n // @dev Check for slippage.\\n if (amountReceivedLD < _minAmountLD) {\\n revert SlippageExceeded(amountReceivedLD, _minAmountLD);\\n }\\n }\\n\\n /**\\n * @dev Internal function to perform a debit operation.\\n * @param _from The address to debit.\\n * @param _amountLD The amount to send in local decimals.\\n * @param _minAmountLD The minimum amount to send in local decimals.\\n * @param _dstEid The destination endpoint ID.\\n * @return amountSentLD The amount sent in local decimals.\\n * @return amountReceivedLD The amount received in local decimals on the remote.\\n *\\n * @dev Defined here but are intended to be overriden depending on the OFT implementation.\\n * @dev Depending on OFT implementation the _amountLD could differ from the amountReceivedLD.\\n */\\n function _debit(\\n address _from,\\n uint256 _amountLD,\\n uint256 _minAmountLD,\\n uint32 _dstEid\\n ) internal virtual returns (uint256 amountSentLD, uint256 amountReceivedLD);\\n\\n /**\\n * @dev Internal function to perform a credit operation.\\n * @param _to The address to credit.\\n * @param _amountLD The amount to credit in local decimals.\\n * @param _srcEid The source endpoint ID.\\n * @return amountReceivedLD The amount ACTUALLY received in local decimals.\\n *\\n * @dev Defined here but are intended to be overriden depending on the OFT implementation.\\n * @dev Depending on OFT implementation the _amountLD could differ from the amountReceivedLD.\\n */\\n function _credit(\\n address _to,\\n uint256 _amountLD,\\n uint32 _srcEid\\n ) internal virtual returns (uint256 amountReceivedLD);\\n}\\n\"},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.3.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"./IERC20.sol\\\";\\nimport {IERC20Metadata} from \\\"./extensions/IERC20Metadata.sol\\\";\\nimport {Context} from \\\"../../utils/Context.sol\\\";\\nimport {IERC20Errors} from \\\"../../interfaces/draft-IERC6093.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC-20\\n * applications.\\n */\\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\\n mapping(address account => uint256) private _balances;\\n\\n mapping(address account => mapping(address spender => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * Both values are immutable: they can only be set once during construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the default value returned by this function, unless\\n * it's overridden.\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `value`.\\n */\\n function transfer(address to, uint256 value) public virtual returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, value);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 value) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, value);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Skips emitting an {Approval} event indicating an allowance update. This is not\\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `value`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `value`.\\n */\\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, value);\\n _transfer(from, to, value);\\n return true;\\n }\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * NOTE: This function is not virtual, {_update} should be overridden instead.\\n */\\n function _transfer(address from, address to, uint256 value) internal {\\n if (from == address(0)) {\\n revert ERC20InvalidSender(address(0));\\n }\\n if (to == address(0)) {\\n revert ERC20InvalidReceiver(address(0));\\n }\\n _update(from, to, value);\\n }\\n\\n /**\\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\\n * this function.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _update(address from, address to, uint256 value) internal virtual {\\n if (from == address(0)) {\\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\\n _totalSupply += value;\\n } else {\\n uint256 fromBalance = _balances[from];\\n if (fromBalance < value) {\\n revert ERC20InsufficientBalance(from, fromBalance, value);\\n }\\n unchecked {\\n // Overflow not possible: value <= fromBalance <= totalSupply.\\n _balances[from] = fromBalance - value;\\n }\\n }\\n\\n if (to == address(0)) {\\n unchecked {\\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\\n _totalSupply -= value;\\n }\\n } else {\\n unchecked {\\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\\n _balances[to] += value;\\n }\\n }\\n\\n emit Transfer(from, to, value);\\n }\\n\\n /**\\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\\n * Relies on the `_update` mechanism\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * NOTE: This function is not virtual, {_update} should be overridden instead.\\n */\\n function _mint(address account, uint256 value) internal {\\n if (account == address(0)) {\\n revert ERC20InvalidReceiver(address(0));\\n }\\n _update(address(0), account, value);\\n }\\n\\n /**\\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\\n * Relies on the `_update` mechanism.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * NOTE: This function is not virtual, {_update} should be overridden instead\\n */\\n function _burn(address account, uint256 value) internal {\\n if (account == address(0)) {\\n revert ERC20InvalidSender(address(0));\\n }\\n _update(account, address(0), value);\\n }\\n\\n /**\\n * @dev Sets `value` as the allowance of `spender` over the `owner`'s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n *\\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\\n */\\n function _approve(address owner, address spender, uint256 value) internal {\\n _approve(owner, spender, value, true);\\n }\\n\\n /**\\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\\n *\\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\\n * `Approval` event during `transferFrom` operations.\\n *\\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\\n * true using the following override:\\n *\\n * ```solidity\\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\\n * super._approve(owner, spender, value, true);\\n * }\\n * ```\\n *\\n * Requirements are the same as {_approve}.\\n */\\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\\n if (owner == address(0)) {\\n revert ERC20InvalidApprover(address(0));\\n }\\n if (spender == address(0)) {\\n revert ERC20InvalidSpender(address(0));\\n }\\n _allowances[owner][spender] = value;\\n if (emitEvent) {\\n emit Approval(owner, spender, value);\\n }\\n }\\n\\n /**\\n * @dev Updates `owner`'s allowance for `spender` based on spent `value`.\\n *\\n * Does not update the allowance value in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Does not emit an {Approval} event.\\n */\\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance < type(uint256).max) {\\n if (currentAllowance < value) {\\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\\n }\\n unchecked {\\n _approve(owner, spender, currentAllowance - value, false);\\n }\\n }\\n }\\n}\\n\"},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard ERC-20 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\\n */\\ninterface IERC20Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC20InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC20InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC20InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC20InvalidSpender(address spender);\\n}\\n\\n/**\\n * @dev Standard ERC-721 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\\n */\\ninterface IERC721Errors {\\n /**\\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\\n * Used in balance queries.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721InvalidOwner(address owner);\\n\\n /**\\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721NonexistentToken(uint256 tokenId);\\n\\n /**\\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param tokenId Identifier number of a token.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC721InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC721InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC721InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC721InvalidOperator(address operator);\\n}\\n\\n/**\\n * @dev Standard ERC-1155 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\\n */\\ninterface IERC1155Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC1155InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC1155InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC1155MissingApprovalForAll(address operator, address owner);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC1155InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC1155InvalidOperator(address operator);\\n\\n /**\\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\\n * Used in batch transfers.\\n * @param idsLength Length of the array of token identifiers\\n * @param valuesLength Length of the array of token amounts\\n */\\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\\n}\\n\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC-20 standard as defined in the ERC.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\"},\"@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nlibrary OFTComposeMsgCodec {\\n // Offset constants for decoding composed messages\\n uint8 private constant NONCE_OFFSET = 8;\\n uint8 private constant SRC_EID_OFFSET = 12;\\n uint8 private constant AMOUNT_LD_OFFSET = 44;\\n uint8 private constant COMPOSE_FROM_OFFSET = 76;\\n\\n /**\\n * @dev Encodes a OFT composed message.\\n * @param _nonce The nonce value.\\n * @param _srcEid The source endpoint ID.\\n * @param _amountLD The amount in local decimals.\\n * @param _composeMsg The composed message.\\n * @return _msg The encoded Composed message.\\n */\\n function encode(\\n uint64 _nonce,\\n uint32 _srcEid,\\n uint256 _amountLD,\\n bytes memory _composeMsg // 0x[composeFrom][composeMsg]\\n ) internal pure returns (bytes memory _msg) {\\n _msg = abi.encodePacked(_nonce, _srcEid, _amountLD, _composeMsg);\\n }\\n\\n /**\\n * @dev Retrieves the nonce for the composed message.\\n * @param _msg The message.\\n * @return The nonce value.\\n */\\n function nonce(bytes calldata _msg) internal pure returns (uint64) {\\n return uint64(bytes8(_msg[:NONCE_OFFSET]));\\n }\\n\\n /**\\n * @dev Retrieves the source endpoint ID for the composed message.\\n * @param _msg The message.\\n * @return The source endpoint ID.\\n */\\n function srcEid(bytes calldata _msg) internal pure returns (uint32) {\\n return uint32(bytes4(_msg[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n /**\\n * @dev Retrieves the amount in local decimals from the composed message.\\n * @param _msg The message.\\n * @return The amount in local decimals.\\n */\\n function amountLD(bytes calldata _msg) internal pure returns (uint256) {\\n return uint256(bytes32(_msg[SRC_EID_OFFSET:AMOUNT_LD_OFFSET]));\\n }\\n\\n /**\\n * @dev Retrieves the composeFrom value from the composed message.\\n * @param _msg The message.\\n * @return The composeFrom value.\\n */\\n function composeFrom(bytes calldata _msg) internal pure returns (bytes32) {\\n return bytes32(_msg[AMOUNT_LD_OFFSET:COMPOSE_FROM_OFFSET]);\\n }\\n\\n /**\\n * @dev Retrieves the composed message.\\n * @param _msg The message.\\n * @return The composed message.\\n */\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory) {\\n return _msg[COMPOSE_FROM_OFFSET:];\\n }\\n\\n /**\\n * @dev Converts an address to bytes32.\\n * @param _addr The address to convert.\\n * @return The bytes32 representation of the address.\\n */\\n function addressToBytes32(address _addr) internal pure returns (bytes32) {\\n return bytes32(uint256(uint160(_addr)));\\n }\\n\\n /**\\n * @dev Converts bytes32 to an address.\\n * @param _b The bytes32 value to convert.\\n * @return The address representation of bytes32.\\n */\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address) {\\n return address(uint160(uint256(_b)));\\n }\\n}\\n\"},\"@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nlibrary OFTMsgCodec {\\n // Offset constants for encoding and decoding OFT messages\\n uint8 private constant SEND_TO_OFFSET = 32;\\n uint8 private constant SEND_AMOUNT_SD_OFFSET = 40;\\n\\n /**\\n * @dev Encodes an OFT LayerZero message.\\n * @param _sendTo The recipient address.\\n * @param _amountShared The amount in shared decimals.\\n * @param _composeMsg The composed message.\\n * @return _msg The encoded message.\\n * @return hasCompose A boolean indicating whether the message has a composed payload.\\n */\\n function encode(\\n bytes32 _sendTo,\\n uint64 _amountShared,\\n bytes memory _composeMsg\\n ) internal view returns (bytes memory _msg, bool hasCompose) {\\n hasCompose = _composeMsg.length > 0;\\n // @dev Remote chains will want to know the composed function caller ie. msg.sender on the src.\\n _msg = hasCompose\\n ? abi.encodePacked(_sendTo, _amountShared, addressToBytes32(msg.sender), _composeMsg)\\n : abi.encodePacked(_sendTo, _amountShared);\\n }\\n\\n /**\\n * @dev Checks if the OFT message is composed.\\n * @param _msg The OFT message.\\n * @return A boolean indicating whether the message is composed.\\n */\\n function isComposed(bytes calldata _msg) internal pure returns (bool) {\\n return _msg.length > SEND_AMOUNT_SD_OFFSET;\\n }\\n\\n /**\\n * @dev Retrieves the recipient address from the OFT message.\\n * @param _msg The OFT message.\\n * @return The recipient address.\\n */\\n function sendTo(bytes calldata _msg) internal pure returns (bytes32) {\\n return bytes32(_msg[:SEND_TO_OFFSET]);\\n }\\n\\n /**\\n * @dev Retrieves the amount in shared decimals from the OFT message.\\n * @param _msg The OFT message.\\n * @return The amount in shared decimals.\\n */\\n function amountSD(bytes calldata _msg) internal pure returns (uint64) {\\n return uint64(bytes8(_msg[SEND_TO_OFFSET:SEND_AMOUNT_SD_OFFSET]));\\n }\\n\\n /**\\n * @dev Retrieves the composed message from the OFT message.\\n * @param _msg The OFT message.\\n * @return The composed message.\\n */\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory) {\\n return _msg[SEND_AMOUNT_SD_OFFSET:];\\n }\\n\\n /**\\n * @dev Converts an address to bytes32.\\n * @param _addr The address to convert.\\n * @return The bytes32 representation of the address.\\n */\\n function addressToBytes32(address _addr) internal pure returns (bytes32) {\\n return bytes32(uint256(uint160(_addr)));\\n }\\n\\n /**\\n * @dev Converts bytes32 to an address.\\n * @param _b The bytes32 value to convert.\\n * @return The address representation of bytes32.\\n */\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address) {\\n return address(uint160(uint256(_b)));\\n }\\n}\\n\"},\"@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { MessagingReceipt, MessagingFee } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\\\";\\n\\n/**\\n * @dev Struct representing token parameters for the OFT send() operation.\\n */\\nstruct SendParam {\\n uint32 dstEid; // Destination endpoint ID.\\n bytes32 to; // Recipient address.\\n uint256 amountLD; // Amount to send in local decimals.\\n uint256 minAmountLD; // Minimum amount to send in local decimals.\\n bytes extraOptions; // Additional options supplied by the caller to be used in the LayerZero message.\\n bytes composeMsg; // The composed message for the send() operation.\\n bytes oftCmd; // The OFT command to be executed, unused in default OFT implementations.\\n}\\n\\n/**\\n * @dev Struct representing OFT limit information.\\n * @dev These amounts can change dynamically and are up the specific oft implementation.\\n */\\nstruct OFTLimit {\\n uint256 minAmountLD; // Minimum amount in local decimals that can be sent to the recipient.\\n uint256 maxAmountLD; // Maximum amount in local decimals that can be sent to the recipient.\\n}\\n\\n/**\\n * @dev Struct representing OFT receipt information.\\n */\\nstruct OFTReceipt {\\n uint256 amountSentLD; // Amount of tokens ACTUALLY debited from the sender in local decimals.\\n // @dev In non-default implementations, the amountReceivedLD COULD differ from this value.\\n uint256 amountReceivedLD; // Amount of tokens to be received on the remote side.\\n}\\n\\n/**\\n * @dev Struct representing OFT fee details.\\n * @dev Future proof mechanism to provide a standardized way to communicate fees to things like a UI.\\n */\\nstruct OFTFeeDetail {\\n int256 feeAmountLD; // Amount of the fee in local decimals.\\n string description; // Description of the fee.\\n}\\n\\n/**\\n * @title IOFT\\n * @dev Interface for the OftChain (OFT) token.\\n * @dev Does not inherit ERC20 to accommodate usage by OFTAdapter as well.\\n * @dev This specific interface ID is '0x02e49c2c'.\\n */\\ninterface IOFT {\\n // Custom error messages\\n error InvalidLocalDecimals();\\n error SlippageExceeded(uint256 amountLD, uint256 minAmountLD);\\n\\n // Events\\n event OFTSent(\\n bytes32 indexed guid, // GUID of the OFT message.\\n uint32 dstEid, // Destination Endpoint ID.\\n address indexed fromAddress, // Address of the sender on the src chain.\\n uint256 amountSentLD, // Amount of tokens sent in local decimals.\\n uint256 amountReceivedLD // Amount of tokens received in local decimals.\\n );\\n event OFTReceived(\\n bytes32 indexed guid, // GUID of the OFT message.\\n uint32 srcEid, // Source Endpoint ID.\\n address indexed toAddress, // Address of the recipient on the dst chain.\\n uint256 amountReceivedLD // Amount of tokens received in local decimals.\\n );\\n\\n /**\\n * @notice Retrieves interfaceID and the version of the OFT.\\n * @return interfaceId The interface ID.\\n * @return version The version.\\n *\\n * @dev interfaceId: This specific interface ID is '0x02e49c2c'.\\n * @dev version: Indicates a cross-chain compatible msg encoding with other OFTs.\\n * @dev If a new feature is added to the OFT cross-chain msg encoding, the version will be incremented.\\n * ie. localOFT version(x,1) CAN send messages to remoteOFT version(x,1)\\n */\\n function oftVersion() external view returns (bytes4 interfaceId, uint64 version);\\n\\n /**\\n * @notice Retrieves the address of the token associated with the OFT.\\n * @return token The address of the ERC20 token implementation.\\n */\\n function token() external view returns (address);\\n\\n /**\\n * @notice Indicates whether the OFT contract requires approval of the 'token()' to send.\\n * @return requiresApproval Needs approval of the underlying token implementation.\\n *\\n * @dev Allows things like wallet implementers to determine integration requirements,\\n * without understanding the underlying token implementation.\\n */\\n function approvalRequired() external view returns (bool);\\n\\n /**\\n * @notice Retrieves the shared decimals of the OFT.\\n * @return sharedDecimals The shared decimals of the OFT.\\n */\\n function sharedDecimals() external view returns (uint8);\\n\\n /**\\n * @notice Provides the fee breakdown and settings data for an OFT. Unused in the default implementation.\\n * @param _sendParam The parameters for the send operation.\\n * @return limit The OFT limit information.\\n * @return oftFeeDetails The details of OFT fees.\\n * @return receipt The OFT receipt information.\\n */\\n function quoteOFT(\\n SendParam calldata _sendParam\\n ) external view returns (OFTLimit memory, OFTFeeDetail[] memory oftFeeDetails, OFTReceipt memory);\\n\\n /**\\n * @notice Provides a quote for the send() operation.\\n * @param _sendParam The parameters for the send() operation.\\n * @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\\n * @return fee The calculated LayerZero messaging fee from the send() operation.\\n *\\n * @dev MessagingFee: LayerZero msg fee\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n */\\n function quoteSend(SendParam calldata _sendParam, bool _payInLzToken) external view returns (MessagingFee memory);\\n\\n /**\\n * @notice Executes the send() operation.\\n * @param _sendParam The parameters for the send operation.\\n * @param _fee The fee information supplied by the caller.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess funds from fees etc. on the src.\\n * @return receipt The LayerZero messaging receipt from the send() operation.\\n * @return oftReceipt The OFT receipt information.\\n *\\n * @dev MessagingReceipt: LayerZero msg receipt\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory, OFTReceipt memory);\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IPreCrime } from \\\"./interfaces/IPreCrime.sol\\\";\\nimport { IOAppPreCrimeSimulator, InboundPacket, Origin } from \\\"./interfaces/IOAppPreCrimeSimulator.sol\\\";\\n\\n/**\\n * @title OAppPreCrimeSimulator\\n * @dev Abstract contract serving as the base for preCrime simulation functionality in an OApp.\\n */\\nabstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\\n // The address of the preCrime implementation.\\n address public preCrime;\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n *\\n * @dev The simulator contract is the base contract for the OApp by default.\\n * @dev If the simulator is a separate contract, override this function.\\n */\\n function oApp() external view virtual returns (address) {\\n return address(this);\\n }\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) public virtual onlyOwner {\\n preCrime = _preCrime;\\n emit PreCrimeSet(_preCrime);\\n }\\n\\n /**\\n * @dev Interface for pre-crime simulations. Always reverts at the end with the simulation results.\\n * @param _packets An array of InboundPacket objects representing received packets to be delivered.\\n *\\n * @dev WARNING: MUST revert at the end with the simulation results.\\n * @dev Gives the preCrime implementation the ability to mock sending packets to the lzReceive function,\\n * WITHOUT actually executing them.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) public payable virtual {\\n for (uint256 i = 0; i < _packets.length; i++) {\\n InboundPacket calldata packet = _packets[i];\\n\\n // Ignore packets that are not from trusted peers.\\n if (!isPeer(packet.origin.srcEid, packet.origin.sender)) continue;\\n\\n // @dev Because a verifier is calling this function, it doesnt have access to executor params:\\n // - address _executor\\n // - bytes calldata _extraData\\n // preCrime will NOT work for OApps that rely on these two parameters inside of their _lzReceive().\\n // They are instead stubbed to default values, address(0) and bytes(\\\"\\\")\\n // @dev Calling this.lzReceiveSimulate removes ability for assembly return 0 callstack exit,\\n // which would cause the revert to be ignored.\\n this.lzReceiveSimulate{ value: packet.value }(\\n packet.origin,\\n packet.guid,\\n packet.message,\\n packet.executor,\\n packet.extraData\\n );\\n }\\n\\n // @dev Revert with the simulation results. msg.sender must implement IPreCrime.buildSimulationResult().\\n revert SimulationResult(IPreCrime(msg.sender).buildSimulationResult());\\n }\\n\\n /**\\n * @dev Is effectively an internal function because msg.sender must be address(this).\\n * Allows resetting the call stack for 'internal' calls.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier of the packet.\\n * @param _message The message payload of the packet.\\n * @param _executor The executor address for the packet.\\n * @param _extraData Additional data for the packet.\\n */\\n function lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable virtual {\\n // @dev Ensure ONLY can be called 'internally'.\\n if (msg.sender != address(this)) revert OnlySelf();\\n _lzReceiveSimulate(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n * @param _origin The origin information.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address from the src chain.\\n * - nonce: The nonce of the LayerZero message.\\n * @param _guid The GUID of the LayerZero message.\\n * @param _message The LayerZero message.\\n * @param _executor The address of the off-chain executor.\\n * @param _extraData Arbitrary data passed by the msg executor.\\n *\\n * @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n * routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n */\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual returns (bool);\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title IOAppMsgInspector\\n * @dev Interface for the OApp Message Inspector, allowing examination of message and options contents.\\n */\\ninterface IOAppMsgInspector {\\n // Custom error message for inspection failure\\n error InspectionFailed(bytes message, bytes options);\\n\\n /**\\n * @notice Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\\n * @param _message The message payload to be inspected.\\n * @param _options Additional options or parameters for inspection.\\n * @return valid A boolean indicating whether the inspection passed (true) or failed (false).\\n *\\n * @dev Optionally done as a revert, OR use the boolean provided to handle the failure.\\n */\\n function inspect(bytes calldata _message, bytes calldata _options) external view returns (bool valid);\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppOptionsType3, EnforcedOptionParam } from \\\"../interfaces/IOAppOptionsType3.sol\\\";\\n\\n/**\\n * @title OAppOptionsType3\\n * @dev Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\\n */\\nabstract contract OAppOptionsType3 is IOAppOptionsType3, Ownable {\\n uint16 internal constant OPTION_TYPE_3 = 3;\\n\\n // @dev The \\\"msgType\\\" should be defined in the child contract.\\n mapping(uint32 eid => mapping(uint16 msgType => bytes enforcedOption)) public enforcedOptions;\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) public virtual onlyOwner {\\n _setEnforcedOptions(_enforcedOptions);\\n }\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function _setEnforcedOptions(EnforcedOptionParam[] memory _enforcedOptions) internal virtual {\\n for (uint256 i = 0; i < _enforcedOptions.length; i++) {\\n // @dev Enforced options are only available for optionType 3, as type 1 and 2 dont support combining.\\n _assertOptionsType3(_enforcedOptions[i].options);\\n enforcedOptions[_enforcedOptions[i].eid][_enforcedOptions[i].msgType] = _enforcedOptions[i].options;\\n }\\n\\n emit EnforcedOptionSet(_enforcedOptions);\\n }\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OAPP message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n *\\n * @dev If there is an enforced lzReceive option:\\n * - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether}\\n * - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.\\n * @dev This presence of duplicated options is handled off-chain in the verifier/executor.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) public view virtual returns (bytes memory) {\\n bytes memory enforced = enforcedOptions[_eid][_msgType];\\n\\n // No enforced options, pass whatever the caller supplied, even if it's empty or legacy type 1/2 options.\\n if (enforced.length == 0) return _extraOptions;\\n\\n // No caller options, return enforced\\n if (_extraOptions.length == 0) return enforced;\\n\\n // @dev If caller provided _extraOptions, must be type 3 as its the ONLY type that can be combined.\\n if (_extraOptions.length >= 2) {\\n _assertOptionsType3(_extraOptions);\\n // @dev Remove the first 2 bytes containing the type from the _extraOptions and combine with enforced.\\n return bytes.concat(enforced, _extraOptions[2:]);\\n }\\n\\n // No valid set of options was found.\\n revert InvalidOptions(_extraOptions);\\n }\\n\\n /**\\n * @dev Internal function to assert that options are of type 3.\\n * @param _options The options to be checked.\\n */\\n function _assertOptionsType3(bytes memory _options) internal pure virtual {\\n uint16 optionsType;\\n assembly {\\n optionsType := mload(add(_options, 2))\\n }\\n if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\\n }\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the 'MessagingFee' and 'MessagingReceipt' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppSender, MessagingFee, MessagingReceipt } from \\\"./OAppSender.sol\\\";\\n// @dev Import the 'Origin' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppReceiver, Origin } from \\\"./OAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OApp\\n * @dev Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\\n */\\nabstract contract OApp is OAppSender, OAppReceiver {\\n /**\\n * @dev Constructor to initialize the OApp with the provided endpoint and owner.\\n * @param _endpoint The address of the LOCAL LayerZero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n */\\n constructor(address _endpoint, address _delegate) OAppCore(_endpoint, _delegate) {}\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol implementation.\\n * @return receiverVersion The version of the OAppReceiver.sol implementation.\\n */\\n function oAppVersion()\\n public\\n pure\\n virtual\\n override(OAppSender, OAppReceiver)\\n returns (uint64 senderVersion, uint64 receiverVersion)\\n {\\n return (SENDER_VERSION, RECEIVER_VERSION);\\n }\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSender is OAppCore {\\n using SafeERC20 for IERC20;\\n\\n // Custom error messages\\n error NotEnoughNative(uint256 msgValue);\\n error LzTokenUnavailable();\\n\\n // @dev The version of the OAppSender implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant SENDER_VERSION = 1;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n * ie. this is a SEND only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (SENDER_VERSION, 0);\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n * @return fee The calculated MessagingFee for the message.\\n * - nativeFee: The native fee for the message.\\n * - lzTokenFee: The LZ token fee for the message.\\n */\\n function _quote(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n bool _payInLzToken\\n ) internal view virtual returns (MessagingFee memory fee) {\\n return\\n endpoint.quote(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n address(this)\\n );\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _fee The calculated LayerZero fee for the message.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n * @return receipt The receipt for the sent message.\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _lzSend(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n MessagingFee memory _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory receipt) {\\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n uint256 messageValue = _payNative(_fee.nativeFee);\\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n return\\n // solhint-disable-next-line check-send-result\\n endpoint.send{ value: messageValue }(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n _refundAddress\\n );\\n }\\n\\n /**\\n * @dev Internal function to pay the native fee associated with the message.\\n * @param _nativeFee The native fee to be paid.\\n * @return nativeFee The amount of native currency paid.\\n *\\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n * this will need to be overridden because msg.value would contain multiple lzFees.\\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n */\\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n return _nativeFee;\\n }\\n\\n /**\\n * @dev Internal function to pay the LZ token fee associated with the message.\\n * @param _lzTokenFee The LZ token fee to be paid.\\n *\\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n */\\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n // @dev Cannot cache the token because it is not immutable in the endpoint.\\n address lzToken = endpoint.lzToken();\\n if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n // Pay LZ token fee by sending tokens to the endpoint.\\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n }\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the Origin so it's exposed to OAppPreCrimeSimulator implementers.\\n// solhint-disable-next-line no-unused-import\\nimport { InboundPacket, Origin } from \\\"../libs/Packet.sol\\\";\\n\\n/**\\n * @title IOAppPreCrimeSimulator Interface\\n * @dev Interface for the preCrime simulation functionality in an OApp.\\n */\\ninterface IOAppPreCrimeSimulator {\\n // @dev simulation result used in PreCrime implementation\\n error SimulationResult(bytes result);\\n error OnlySelf();\\n\\n /**\\n * @dev Emitted when the preCrime contract address is set.\\n * @param preCrimeAddress The address of the preCrime contract.\\n */\\n event PreCrimeSet(address preCrimeAddress);\\n\\n /**\\n * @dev Retrieves the address of the preCrime contract implementation.\\n * @return The address of the preCrime contract.\\n */\\n function preCrime() external view returns (address);\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n */\\n function oApp() external view returns (address);\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) external;\\n\\n /**\\n * @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\\n * @param _packets An array of LayerZero InboundPacket objects representing received packets.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) external payable;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) external view returns (bool);\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\nstruct PreCrimePeer {\\n uint32 eid;\\n bytes32 preCrime;\\n bytes32 oApp;\\n}\\n\\n// TODO not done yet\\ninterface IPreCrime {\\n error OnlyOffChain();\\n\\n // for simulate()\\n error PacketOversize(uint256 max, uint256 actual);\\n error PacketUnsorted();\\n error SimulationFailed(bytes reason);\\n\\n // for preCrime()\\n error SimulationResultNotFound(uint32 eid);\\n error InvalidSimulationResult(uint32 eid, bytes reason);\\n error CrimeFound(bytes crime);\\n\\n function getConfig(bytes[] calldata _packets, uint256[] calldata _packetMsgValues) external returns (bytes memory);\\n\\n function simulate(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues\\n ) external payable returns (bytes memory);\\n\\n function buildSimulationResult() external view returns (bytes memory);\\n\\n function preCrime(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues,\\n bytes[] calldata _simulations\\n ) external;\\n\\n function version() external view returns (uint64 major, uint8 minor);\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Struct representing enforced option parameters.\\n */\\nstruct EnforcedOptionParam {\\n uint32 eid; // Endpoint ID\\n uint16 msgType; // Message Type\\n bytes options; // Additional options\\n}\\n\\n/**\\n * @title IOAppOptionsType3\\n * @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\\n */\\ninterface IOAppOptionsType3 {\\n // Custom error message for invalid options\\n error InvalidOptions(bytes options);\\n\\n // Event emitted when enforced options are set\\n event EnforcedOptionSet(EnforcedOptionParam[] _enforcedOptions);\\n\\n /**\\n * @notice Sets enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) external;\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OApp message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) external view returns (bytes memory options);\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"./interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiver is IOAppReceiver, OAppCore {\\n // Custom error message for when the caller is not the registered endpoint/\\n error OnlyEndpoint(address addr);\\n\\n // @dev The version of the OAppReceiver implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant RECEIVER_VERSION = 2;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n * ie. this is a RECEIVE only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (0, RECEIVER_VERSION);\\n }\\n\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @dev _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @dev _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata /*_origin*/,\\n bytes calldata /*_message*/,\\n address _sender\\n ) public view virtual returns (bool) {\\n return _sender == address(this);\\n }\\n\\n /**\\n * @notice Checks if the path initialization is allowed based on the provided origin.\\n * @param origin The origin information containing the source endpoint and sender address.\\n * @return Whether the path has been initialized.\\n *\\n * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n * @dev This defaults to assuming if a peer has been set, its initialized.\\n * Can be overridden by the OApp if there is other logic to determine this.\\n */\\n function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n return peers[origin.srcEid] == origin.sender;\\n }\\n\\n /**\\n * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n * @dev _srcEid The source endpoint ID.\\n * @dev _sender The sender address.\\n * @return nonce The next nonce.\\n *\\n * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n * @dev This is also enforced by the OApp.\\n * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n */\\n function nextNonce(uint32 /*_srcEid*/, bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n return 0;\\n }\\n\\n /**\\n * @dev Entry point for receiving messages or packets from the endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The payload of the received message.\\n * @param _executor The address of the executor for the received message.\\n * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n *\\n * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n */\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) public payable virtual {\\n // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n // Ensure that the sender matches the expected peer for the source endpoint.\\n if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n // Call the internal OApp implementation of lzReceive.\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n */\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { PacketV1Codec } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\\\";\\n\\n/**\\n * @title InboundPacket\\n * @dev Structure representing an inbound packet received by the contract.\\n */\\nstruct InboundPacket {\\n Origin origin; // Origin information of the packet.\\n uint32 dstEid; // Destination endpointId of the packet.\\n address receiver; // Receiver address for the packet.\\n bytes32 guid; // Unique identifier of the packet.\\n uint256 value; // msg.value of the packet.\\n address executor; // Executor address for the packet.\\n bytes message; // Message payload of the packet.\\n bytes extraData; // Additional arbitrary data for the packet.\\n}\\n\\n/**\\n * @title PacketDecoder\\n * @dev Library for decoding LayerZero packets.\\n */\\nlibrary PacketDecoder {\\n using PacketV1Codec for bytes;\\n\\n /**\\n * @dev Decode an inbound packet from the given packet data.\\n * @param _packet The packet data to decode.\\n * @return packet An InboundPacket struct representing the decoded packet.\\n */\\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\\n packet.dstEid = _packet.dstEid();\\n packet.receiver = _packet.receiverB20();\\n packet.guid = _packet.guid();\\n packet.message = _packet.message();\\n }\\n\\n /**\\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\\n * @param _packets An array of packet data to decode.\\n * @param _packetMsgValues An array of associated message values for each packet.\\n * @return packets An array of InboundPacket structs representing the decoded packets.\\n */\\n function decode(\\n bytes[] calldata _packets,\\n uint256[] memory _packetMsgValues\\n ) internal pure returns (InboundPacket[] memory packets) {\\n packets = new InboundPacket[](_packets.length);\\n for (uint256 i = 0; i < _packets.length; i++) {\\n bytes calldata packet = _packets[i];\\n packets[i] = PacketDecoder.decode(packet);\\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\\n packets[i].value = _packetMsgValues[i];\\n }\\n }\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.3.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC1363} from \\\"../../../interfaces/IERC1363.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC-20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n /**\\n * @dev An operation with an ERC-20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Variant of {safeTransfer} that returns a bool instead of reverting if the operation is not successful.\\n */\\n function trySafeTransfer(IERC20 token, address to, uint256 value) internal returns (bool) {\\n return _callOptionalReturnBool(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Variant of {safeTransferFrom} that returns a bool instead of reverting if the operation is not successful.\\n */\\n function trySafeTransferFrom(IERC20 token, address from, address to, uint256 value) internal returns (bool) {\\n return _callOptionalReturnBool(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n *\\n * IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \\\"client\\\"\\n * smart contract uses ERC-7674 to set temporary allowances, then the \\\"client\\\" smart contract should avoid using\\n * this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\\n * that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n *\\n * IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \\\"client\\\"\\n * smart contract uses ERC-7674 to set temporary allowances, then the \\\"client\\\" smart contract should avoid using\\n * this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\\n * that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n *\\n * NOTE: If the token implements ERC-7674, this function will not modify any temporary allowance. This function\\n * only sets the \\\"standard\\\" allowance. Any temporary allowance will remain active, in addition to the value being\\n * set here.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Performs an {ERC1363} transferAndCall, with a fallback to the simple {ERC20} transfer if the target has no\\n * code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\\n * targeting contracts.\\n *\\n * Reverts if the returned value is other than `true`.\\n */\\n function transferAndCallRelaxed(IERC1363 token, address to, uint256 value, bytes memory data) internal {\\n if (to.code.length == 0) {\\n safeTransfer(token, to, value);\\n } else if (!token.transferAndCall(to, value, data)) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Performs an {ERC1363} transferFromAndCall, with a fallback to the simple {ERC20} transferFrom if the target\\n * has no code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\\n * targeting contracts.\\n *\\n * Reverts if the returned value is other than `true`.\\n */\\n function transferFromAndCallRelaxed(\\n IERC1363 token,\\n address from,\\n address to,\\n uint256 value,\\n bytes memory data\\n ) internal {\\n if (to.code.length == 0) {\\n safeTransferFrom(token, from, to, value);\\n } else if (!token.transferFromAndCall(from, to, value, data)) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Performs an {ERC1363} approveAndCall, with a fallback to the simple {ERC20} approve if the target has no\\n * code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\\n * targeting contracts.\\n *\\n * NOTE: When the recipient address (`to`) has no code (i.e. is an EOA), this function behaves as {forceApprove}.\\n * Opposedly, when the recipient address (`to`) has code, this function only attempts to call {ERC1363-approveAndCall}\\n * once without retrying, and relies on the returned value to be true.\\n *\\n * Reverts if the returned value is other than `true`.\\n */\\n function approveAndCallRelaxed(IERC1363 token, address to, uint256 value, bytes memory data) internal {\\n if (to.code.length == 0) {\\n forceApprove(token, to, value);\\n } else if (!token.approveAndCall(to, value, data)) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturnBool} that reverts if call fails to meet the requirements.\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n uint256 returnSize;\\n uint256 returnValue;\\n assembly (\\\"memory-safe\\\") {\\n let success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)\\n // bubble errors\\n if iszero(success) {\\n let ptr := mload(0x40)\\n returndatacopy(ptr, 0, returndatasize())\\n revert(ptr, returndatasize())\\n }\\n returnSize := returndatasize()\\n returnValue := mload(0)\\n }\\n\\n if (returnSize == 0 ? address(token).code.length == 0 : returnValue != 1) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silently catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n bool success;\\n uint256 returnSize;\\n uint256 returnValue;\\n assembly (\\\"memory-safe\\\") {\\n success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)\\n returnSize := returndatasize()\\n returnValue := mload(0)\\n }\\n return success && (returnSize == 0 ? address(token).code.length > 0 : returnValue == 1);\\n }\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata _origin,\\n bytes calldata _message,\\n address _sender\\n ) external view returns (bool isSender);\\n}\\n\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\"},\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1363.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"./IERC20.sol\\\";\\nimport {IERC165} from \\\"./IERC165.sol\\\";\\n\\n/**\\n * @title IERC1363\\n * @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].\\n *\\n * Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract\\n * after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.\\n */\\ninterface IERC1363 is IERC20, IERC165 {\\n /*\\n * Note: the ERC-165 identifier for this interface is 0xb0202a11.\\n * 0xb0202a11 ===\\n * bytes4(keccak256('transferAndCall(address,uint256)')) ^\\n * bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^\\n * bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^\\n * bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) ^\\n * bytes4(keccak256('approveAndCall(address,uint256)')) ^\\n * bytes4(keccak256('approveAndCall(address,uint256,bytes)'))\\n */\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`\\n * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\\n * @param to The address which you want to transfer to.\\n * @param value The amount of tokens to be transferred.\\n * @return A boolean value indicating whether the operation succeeded unless throwing.\\n */\\n function transferAndCall(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`\\n * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\\n * @param to The address which you want to transfer to.\\n * @param value The amount of tokens to be transferred.\\n * @param data Additional data with no specified format, sent in call to `to`.\\n * @return A boolean value indicating whether the operation succeeded unless throwing.\\n */\\n function transferAndCall(address to, uint256 value, bytes calldata data) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\\n * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\\n * @param from The address which you want to send tokens from.\\n * @param to The address which you want to transfer to.\\n * @param value The amount of tokens to be transferred.\\n * @return A boolean value indicating whether the operation succeeded unless throwing.\\n */\\n function transferFromAndCall(address from, address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\\n * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\\n * @param from The address which you want to send tokens from.\\n * @param to The address which you want to transfer to.\\n * @param value The amount of tokens to be transferred.\\n * @param data Additional data with no specified format, sent in call to `to`.\\n * @return A boolean value indicating whether the operation succeeded unless throwing.\\n */\\n function transferFromAndCall(address from, address to, uint256 value, bytes calldata data) external returns (bool);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\\n * @param spender The address which will spend the funds.\\n * @param value The amount of tokens to be spent.\\n * @return A boolean value indicating whether the operation succeeded unless throwing.\\n */\\n function approveAndCall(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\\n * @param spender The address which will spend the funds.\\n * @param value The amount of tokens to be spent.\\n * @param data Additional data with no specified format, sent in call to `spender`.\\n * @return A boolean value indicating whether the operation succeeded unless throwing.\\n */\\n function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool);\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\"},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"../utils/introspection/IERC165.sol\\\";\\n\"},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../token/ERC20/IERC20.sol\\\";\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC-165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\"}},\"settings\":{\"optimizer\":{\"enabled\":false,\"runs\":200},\"outputSelection\":{\"*\":{\"\":[\"ast\"],\"*\":[\"abi\",\"metadata\",\"devdoc\",\"userdoc\",\"storageLayout\",\"evm.legacyAssembly\",\"evm.bytecode\",\"evm.deployedBytecode\",\"evm.methodIdentifiers\",\"evm.gasEstimates\",\"evm.assembly\"]}},\"remappings\":[],\"evmVersion\":\"cancun\"}}",
"name": "MyOFT",
"metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"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\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalDecimals\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"}],\"name\":\"SlippageExceeded\",\"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\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"name\":\"OFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"name\":\"OFTSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimalConversionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"}],\"name\":\"quoteOFT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTLimit\",\"name\":\"oftLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"feeAmountLD\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct OFTFeeDetail[]\",\"name\":\"oftFeeDetails\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTReceipt\",\"name\":\"oftReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTReceipt\",\"name\":\"oftReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"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.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"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\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approvalRequired()\":{\"details\":\"In the case of OFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"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}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"oftVersion()\":{\"details\":\"interfaceId: This specific interface ID is '0x02e49c2c'.version: Indicates a cross-chain compatible msg encoding with other OFTs.If a new feature is added to the OFT cross-chain msg encoding, the version will be incremented. ie. localOFT version(x,1) CAN send messages to remoteOFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))\":{\"params\":{\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"oftFeeDetails\":\"The details of OFT fees.\",\"oftLimit\":\"The OFT limit information.\",\"oftReceipt\":\"The OFT receipt information.\"}},\"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"Executes the send operation.MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The calculated fee for the send() operation. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"The receipt for the send operation.\",\"oftReceipt\":\"The OFT receipt information.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"sharedDecimals()\":{\"details\":\"Retrieves the shared decimals of the OFT.Sets an implicit cap on the amount of tokens, over uint64.max() will need some sort of outbound cap / totalSupply cap Lowest common decimal denominator between chains. Defaults to 6 decimal places to provide up to 18,446,744,073,709.551615 units (max uint64). For tokens exceeding this totalSupply(), they will need to override the sharedDecimals function with something smaller. ie. 4 sharedDecimals would be 1,844,674,407,370,955.1615\",\"returns\":{\"_0\":\"The shared decimals of the OFT.\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"token()\":{\"details\":\"Retrieves the address of the underlying ERC20 implementation.In the case of OFT, address(this) and erc20 are the same contract.\",\"returns\":{\"_0\":\"The address of the OFT token.\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"oftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the OFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))\":{\"notice\":\"Provides the fee breakdown and settings data for an OFT. Unused in the default implementation.\"},\"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"myOFT.sol\":\"MyOFT\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"@layerzerolabs/oft-evm/contracts/OFT.sol\":{\"keccak256\":\"0xdc3582e4a20e02a79050c17058a1f1f42a4335d1a70be06c0a52a3fb05d4c89a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83c4bd42e68528246860a952a92a79e51e3a789dac79a0b62576ab2f609de9c7\",\"dweb:/ipfs/QmVj1x655j1cFTnPT8uBaM71TCSrhFVwPdoFkAkWhhadns\"]},\"@layerzerolabs/oft-evm/contracts/OFTCore.sol\":{\"keccak256\":\"0x4c5a5412cf671bb70d84c9e783312eddf864ef56566f7bf86401c5661015e228\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cac6c48bbc05456b0fccd0782b1a8c2560b0420d425dcba109526af8188893e\",\"dweb:/ipfs/QmRoCZX37UNgBeVKXTsfBvR7DgibZGL1tfrPqfvyGafHor\"]},\"@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol\":{\"keccak256\":\"0x7ba6bb62fba7ee83451cfb0e727ddeef0e96b4388bd4e9ff0fc6ce103e1101c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfbd447f2e8a730bd46a14c3c3e6a0b2bf7446145579603a9793ba5ac1dd38b4\",\"dweb:/ipfs/QmZ4nx4iGrFmBHvYFgki5TXFdCHz4Co38hgdgwpRaM7NLs\"]},\"@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":{\"keccak256\":\"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e\",\"dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK\"]},\"@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol\":{\"keccak256\":\"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258\",\"dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"myOFT.sol\":{\"keccak256\":\"0x0e8610598fb09ce282c73385085d9f5f4dfa9fb22b5a0361866233a2df2e2a60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://946fe58c496ed8f6e7c5c91bd7df2a8acee8d2f26a8768c64c62d5363e33a231\",\"dweb:/ipfs/Qme6UousG63Vs8i2AFRVyv9sreNkQR8G4DQM65bKvwkyas\"]}},\"version\":1}",
"bytecode": {
"functionDebugData": {
"@_1354": {
"entryPoint": null,
"id": 1354,
"parameterSlots": 2,
"returnSlots": 0
},
"@_1421": {
"entryPoint": null,
"id": 1421,
"parameterSlots": 2,
"returnSlots": 0
},
"@_2646": {
"entryPoint": null,
"id": 2646,
"parameterSlots": 4,
"returnSlots": 0
},
"@_2823": {
"entryPoint": null,
"id": 2823,
"parameterSlots": 3,
"returnSlots": 0
},
"@_3883": {
"entryPoint": null,
"id": 3883,
"parameterSlots": 1,
"returnSlots": 0
},
"@_4259": {
"entryPoint": null,
"id": 4259,
"parameterSlots": 2,
"returnSlots": 0
},
"@_5373": {
"entryPoint": null,
"id": 5373,
"parameterSlots": 5,
"returnSlots": 0
},
"@_mint_4562": {
"entryPoint": 937,
"id": 4562,
"parameterSlots": 2,
"returnSlots": 0
},
"@_transferOwnership_3979": {
"entryPoint": 736,
"id": 3979,
"parameterSlots": 1,
"returnSlots": 0
},
"@_update_4529": {
"entryPoint": 1075,
"id": 4529,
"parameterSlots": 3,
"returnSlots": 0
},
"@decimals_4286": {
"entryPoint": 728,
"id": 4286,
"parameterSlots": 0,
"returnSlots": 1
},
"@sharedDecimals_2848": {
"entryPoint": 929,
"id": 2848,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 1891,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 2146,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 1965,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 2049,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_addresst_address_fromMemory": {
"entryPoint": 2168,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 2362,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 3856,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 2379,
"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": 3873,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 3932,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1766,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1626,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1796,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 3045,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 2938,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 3798,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_exp_helper": {
"entryPoint": 2534,
"id": null,
"parameterSlots": 4,
"returnSlots": 2
},
"checked_exp_t_uint256_t_uint8": {
"entryPoint": 2858,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_exp_unsigned": {
"entryPoint": 2624,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 3724,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint8": {
"entryPoint": 2463,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 3345,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_address": {
"entryPoint": 2102,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2071,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2015,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint8": {
"entryPoint": 2406,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 3307,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 3184,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 3496,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 1849,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 3063,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 2993,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 3467,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1712,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 3175,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 3437,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2418,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 2948,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1667,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 3223,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1643,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1647,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1639,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1635,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1651,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 3078,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_1_unsigned": {
"entryPoint": 2522,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 3425,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 3279,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 3090,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 3232,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 2121,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2024,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 3275,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:14400:40",
"nodeType": "YulBlock",
"src": "0:14400:40",
"statements": [
{
"body": {
"nativeSrc": "47:35:40",
"nodeType": "YulBlock",
"src": "47:35:40",
"statements": [
{
"nativeSrc": "57:19:40",
"nodeType": "YulAssignment",
"src": "57:19:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:40",
"nodeType": "YulLiteral",
"src": "73:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:40",
"nodeType": "YulIdentifier",
"src": "67:5:40"
},
"nativeSrc": "67:9:40",
"nodeType": "YulFunctionCall",
"src": "67:9:40"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:40",
"nodeType": "YulIdentifier",
"src": "57:6:40"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:40",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:40",
"nodeType": "YulTypedName",
"src": "40:6:40",
"type": ""
}
],
"src": "7:75:40"
},
{
"body": {
"nativeSrc": "177:28:40",
"nodeType": "YulBlock",
"src": "177:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:40",
"nodeType": "YulLiteral",
"src": "194:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:40",
"nodeType": "YulLiteral",
"src": "197:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:40",
"nodeType": "YulIdentifier",
"src": "187:6:40"
},
"nativeSrc": "187:12:40",
"nodeType": "YulFunctionCall",
"src": "187:12:40"
},
"nativeSrc": "187:12:40",
"nodeType": "YulExpressionStatement",
"src": "187:12:40"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:40",
"nodeType": "YulFunctionDefinition",
"src": "88:117:40"
},
{
"body": {
"nativeSrc": "300:28:40",
"nodeType": "YulBlock",
"src": "300:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:40",
"nodeType": "YulLiteral",
"src": "317:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:40",
"nodeType": "YulLiteral",
"src": "320:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:40",
"nodeType": "YulIdentifier",
"src": "310:6:40"
},
"nativeSrc": "310:12:40",
"nodeType": "YulFunctionCall",
"src": "310:12:40"
},
"nativeSrc": "310:12:40",
"nodeType": "YulExpressionStatement",
"src": "310:12:40"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:40",
"nodeType": "YulFunctionDefinition",
"src": "211:117:40"
},
{
"body": {
"nativeSrc": "423:28:40",
"nodeType": "YulBlock",
"src": "423:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "440:1:40",
"nodeType": "YulLiteral",
"src": "440:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "443:1:40",
"nodeType": "YulLiteral",
"src": "443:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "433:6:40",
"nodeType": "YulIdentifier",
"src": "433:6:40"
},
"nativeSrc": "433:12:40",
"nodeType": "YulFunctionCall",
"src": "433:12:40"
},
"nativeSrc": "433:12:40",
"nodeType": "YulExpressionStatement",
"src": "433:12:40"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "334:117:40",
"nodeType": "YulFunctionDefinition",
"src": "334:117:40"
},
{
"body": {
"nativeSrc": "546:28:40",
"nodeType": "YulBlock",
"src": "546:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "563:1:40",
"nodeType": "YulLiteral",
"src": "563:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "566:1:40",
"nodeType": "YulLiteral",
"src": "566:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "556:6:40",
"nodeType": "YulIdentifier",
"src": "556:6:40"
},
"nativeSrc": "556:12:40",
"nodeType": "YulFunctionCall",
"src": "556:12:40"
},
"nativeSrc": "556:12:40",
"nodeType": "YulExpressionStatement",
"src": "556:12:40"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "457:117:40",
"nodeType": "YulFunctionDefinition",
"src": "457:117:40"
},
{
"body": {
"nativeSrc": "628:54:40",
"nodeType": "YulBlock",
"src": "628:54:40",
"statements": [
{
"nativeSrc": "638:38:40",
"nodeType": "YulAssignment",
"src": "638:38:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "656:5:40",
"nodeType": "YulIdentifier",
"src": "656:5:40"
},
{
"kind": "number",
"nativeSrc": "663:2:40",
"nodeType": "YulLiteral",
"src": "663:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "652:3:40",
"nodeType": "YulIdentifier",
"src": "652:3:40"
},
"nativeSrc": "652:14:40",
"nodeType": "YulFunctionCall",
"src": "652:14:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "672:2:40",
"nodeType": "YulLiteral",
"src": "672:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "668:3:40",
"nodeType": "YulIdentifier",
"src": "668:3:40"
},
"nativeSrc": "668:7:40",
"nodeType": "YulFunctionCall",
"src": "668:7:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "648:3:40",
"nodeType": "YulIdentifier",
"src": "648:3:40"
},
"nativeSrc": "648:28:40",
"nodeType": "YulFunctionCall",
"src": "648:28:40"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "638:6:40",
"nodeType": "YulIdentifier",
"src": "638:6:40"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "580:102:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "611:5:40",
"nodeType": "YulTypedName",
"src": "611:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "621:6:40",
"nodeType": "YulTypedName",
"src": "621:6:40",
"type": ""
}
],
"src": "580:102:40"
},
{
"body": {
"nativeSrc": "716:152:40",
"nodeType": "YulBlock",
"src": "716:152:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "733:1:40",
"nodeType": "YulLiteral",
"src": "733:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "736:77:40",
"nodeType": "YulLiteral",
"src": "736:77:40",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "726:6:40",
"nodeType": "YulIdentifier",
"src": "726:6:40"
},
"nativeSrc": "726:88:40",
"nodeType": "YulFunctionCall",
"src": "726:88:40"
},
"nativeSrc": "726:88:40",
"nodeType": "YulExpressionStatement",
"src": "726:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "830:1:40",
"nodeType": "YulLiteral",
"src": "830:1:40",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "833:4:40",
"nodeType": "YulLiteral",
"src": "833:4:40",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "823:6:40",
"nodeType": "YulIdentifier",
"src": "823:6:40"
},
"nativeSrc": "823:15:40",
"nodeType": "YulFunctionCall",
"src": "823:15:40"
},
"nativeSrc": "823:15:40",
"nodeType": "YulExpressionStatement",
"src": "823:15:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "854:1:40",
"nodeType": "YulLiteral",
"src": "854:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "857:4:40",
"nodeType": "YulLiteral",
"src": "857:4:40",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "847:6:40",
"nodeType": "YulIdentifier",
"src": "847:6:40"
},
"nativeSrc": "847:15:40",
"nodeType": "YulFunctionCall",
"src": "847:15:40"
},
"nativeSrc": "847:15:40",
"nodeType": "YulExpressionStatement",
"src": "847:15:40"
}
]
},
"name": "panic_error_0x41",
"nativeSrc": "688:180:40",
"nodeType": "YulFunctionDefinition",
"src": "688:180:40"
},
{
"body": {
"nativeSrc": "917:238:40",
"nodeType": "YulBlock",
"src": "917:238:40",
"statements": [
{
"nativeSrc": "927:58:40",
"nodeType": "YulVariableDeclaration",
"src": "927:58:40",
"value": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "949:6:40",
"nodeType": "YulIdentifier",
"src": "949:6:40"
},
{
"arguments": [
{
"name": "size",
"nativeSrc": "979:4:40",
"nodeType": "YulIdentifier",
"src": "979:4:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "957:21:40",
"nodeType": "YulIdentifier",
"src": "957:21:40"
},
"nativeSrc": "957:27:40",
"nodeType": "YulFunctionCall",
"src": "957:27:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "945:3:40",
"nodeType": "YulIdentifier",
"src": "945:3:40"
},
"nativeSrc": "945:40:40",
"nodeType": "YulFunctionCall",
"src": "945:40:40"
},
"variables": [
{
"name": "newFreePtr",
"nativeSrc": "931:10:40",
"nodeType": "YulTypedName",
"src": "931:10:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "1096:22:40",
"nodeType": "YulBlock",
"src": "1096:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "1098:16:40",
"nodeType": "YulIdentifier",
"src": "1098:16:40"
},
"nativeSrc": "1098:18:40",
"nodeType": "YulFunctionCall",
"src": "1098:18:40"
},
"nativeSrc": "1098:18:40",
"nodeType": "YulExpressionStatement",
"src": "1098:18:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "1039:10:40",
"nodeType": "YulIdentifier",
"src": "1039:10:40"
},
{
"kind": "number",
"nativeSrc": "1051:18:40",
"nodeType": "YulLiteral",
"src": "1051:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "1036:2:40",
"nodeType": "YulIdentifier",
"src": "1036:2:40"
},
"nativeSrc": "1036:34:40",
"nodeType": "YulFunctionCall",
"src": "1036:34:40"
},
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "1075:10:40",
"nodeType": "YulIdentifier",
"src": "1075:10:40"
},
{
"name": "memPtr",
"nativeSrc": "1087:6:40",
"nodeType": "YulIdentifier",
"src": "1087:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "1072:2:40",
"nodeType": "YulIdentifier",
"src": "1072:2:40"
},
"nativeSrc": "1072:22:40",
"nodeType": "YulFunctionCall",
"src": "1072:22:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "1033:2:40",
"nodeType": "YulIdentifier",
"src": "1033:2:40"
},
"nativeSrc": "1033:62:40",
"nodeType": "YulFunctionCall",
"src": "1033:62:40"
},
"nativeSrc": "1030:88:40",
"nodeType": "YulIf",
"src": "1030:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1134:2:40",
"nodeType": "YulLiteral",
"src": "1134:2:40",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nativeSrc": "1138:10:40",
"nodeType": "YulIdentifier",
"src": "1138:10:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1127:6:40",
"nodeType": "YulIdentifier",
"src": "1127:6:40"
},
"nativeSrc": "1127:22:40",
"nodeType": "YulFunctionCall",
"src": "1127:22:40"
},
"nativeSrc": "1127:22:40",
"nodeType": "YulExpressionStatement",
"src": "1127:22:40"
}
]
},
"name": "finalize_allocation",
"nativeSrc": "874:281:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "903:6:40",
"nodeType": "YulTypedName",
"src": "903:6:40",
"type": ""
},
{
"name": "size",
"nativeSrc": "911:4:40",
"nodeType": "YulTypedName",
"src": "911:4:40",
"type": ""
}
],
"src": "874:281:40"
},
{
"body": {
"nativeSrc": "1202:88:40",
"nodeType": "YulBlock",
"src": "1202:88:40",
"statements": [
{
"nativeSrc": "1212:30:40",
"nodeType": "YulAssignment",
"src": "1212:30:40",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nativeSrc": "1222:18:40",
"nodeType": "YulIdentifier",
"src": "1222:18:40"
},
"nativeSrc": "1222:20:40",
"nodeType": "YulFunctionCall",
"src": "1222:20:40"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "1212:6:40",
"nodeType": "YulIdentifier",
"src": "1212:6:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "1271:6:40",
"nodeType": "YulIdentifier",
"src": "1271:6:40"
},
{
"name": "size",
"nativeSrc": "1279:4:40",
"nodeType": "YulIdentifier",
"src": "1279:4:40"
}
],
"functionName": {
"name": "finalize_allocation",
"nativeSrc": "1251:19:40",
"nodeType": "YulIdentifier",
"src": "1251:19:40"
},
"nativeSrc": "1251:33:40",
"nodeType": "YulFunctionCall",
"src": "1251:33:40"
},
"nativeSrc": "1251:33:40",
"nodeType": "YulExpressionStatement",
"src": "1251:33:40"
}
]
},
"name": "allocate_memory",
"nativeSrc": "1161:129:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nativeSrc": "1186:4:40",
"nodeType": "YulTypedName",
"src": "1186:4:40",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "1195:6:40",
"nodeType": "YulTypedName",
"src": "1195:6:40",
"type": ""
}
],
"src": "1161:129:40"
},
{
"body": {
"nativeSrc": "1363:241:40",
"nodeType": "YulBlock",
"src": "1363:241:40",
"statements": [
{
"body": {
"nativeSrc": "1468:22:40",
"nodeType": "YulBlock",
"src": "1468:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "1470:16:40",
"nodeType": "YulIdentifier",
"src": "1470:16:40"
},
"nativeSrc": "1470:18:40",
"nodeType": "YulFunctionCall",
"src": "1470:18:40"
},
"nativeSrc": "1470:18:40",
"nodeType": "YulExpressionStatement",
"src": "1470:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "1440:6:40",
"nodeType": "YulIdentifier",
"src": "1440:6:40"
},
{
"kind": "number",
"nativeSrc": "1448:18:40",
"nodeType": "YulLiteral",
"src": "1448:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "1437:2:40",
"nodeType": "YulIdentifier",
"src": "1437:2:40"
},
"nativeSrc": "1437:30:40",
"nodeType": "YulFunctionCall",
"src": "1437:30:40"
},
"nativeSrc": "1434:56:40",
"nodeType": "YulIf",
"src": "1434:56:40"
},
{
"nativeSrc": "1500:37:40",
"nodeType": "YulAssignment",
"src": "1500:37:40",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "1530:6:40",
"nodeType": "YulIdentifier",
"src": "1530:6:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "1508:21:40",
"nodeType": "YulIdentifier",
"src": "1508:21:40"
},
"nativeSrc": "1508:29:40",
"nodeType": "YulFunctionCall",
"src": "1508:29:40"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "1500:4:40",
"nodeType": "YulIdentifier",
"src": "1500:4:40"
}
]
},
{
"nativeSrc": "1574:23:40",
"nodeType": "YulAssignment",
"src": "1574:23:40",
"value": {
"arguments": [
{
"name": "size",
"nativeSrc": "1586:4:40",
"nodeType": "YulIdentifier",
"src": "1586:4:40"
},
{
"kind": "number",
"nativeSrc": "1592:4:40",
"nodeType": "YulLiteral",
"src": "1592:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1582:3:40",
"nodeType": "YulIdentifier",
"src": "1582:3:40"
},
"nativeSrc": "1582:15:40",
"nodeType": "YulFunctionCall",
"src": "1582:15:40"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "1574:4:40",
"nodeType": "YulIdentifier",
"src": "1574:4:40"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nativeSrc": "1296:308:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nativeSrc": "1347:6:40",
"nodeType": "YulTypedName",
"src": "1347:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nativeSrc": "1358:4:40",
"nodeType": "YulTypedName",
"src": "1358:4:40",
"type": ""
}
],
"src": "1296:308:40"
},
{
"body": {
"nativeSrc": "1672:184:40",
"nodeType": "YulBlock",
"src": "1672:184:40",
"statements": [
{
"nativeSrc": "1682:10:40",
"nodeType": "YulVariableDeclaration",
"src": "1682:10:40",
"value": {
"kind": "number",
"nativeSrc": "1691:1:40",
"nodeType": "YulLiteral",
"src": "1691:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "1686:1:40",
"nodeType": "YulTypedName",
"src": "1686:1:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "1751:63:40",
"nodeType": "YulBlock",
"src": "1751:63:40",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "1776:3:40",
"nodeType": "YulIdentifier",
"src": "1776:3:40"
},
{
"name": "i",
"nativeSrc": "1781:1:40",
"nodeType": "YulIdentifier",
"src": "1781:1:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1772:3:40",
"nodeType": "YulIdentifier",
"src": "1772:3:40"
},
"nativeSrc": "1772:11:40",
"nodeType": "YulFunctionCall",
"src": "1772:11:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "1795:3:40",
"nodeType": "YulIdentifier",
"src": "1795:3:40"
},
{
"name": "i",
"nativeSrc": "1800:1:40",
"nodeType": "YulIdentifier",
"src": "1800:1:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1791:3:40",
"nodeType": "YulIdentifier",
"src": "1791:3:40"
},
"nativeSrc": "1791:11:40",
"nodeType": "YulFunctionCall",
"src": "1791:11:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "1785:5:40",
"nodeType": "YulIdentifier",
"src": "1785:5:40"
},
"nativeSrc": "1785:18:40",
"nodeType": "YulFunctionCall",
"src": "1785:18:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1765:6:40",
"nodeType": "YulIdentifier",
"src": "1765:6:40"
},
"nativeSrc": "1765:39:40",
"nodeType": "YulFunctionCall",
"src": "1765:39:40"
},
"nativeSrc": "1765:39:40",
"nodeType": "YulExpressionStatement",
"src": "1765:39:40"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "1712:1:40",
"nodeType": "YulIdentifier",
"src": "1712:1:40"
},
{
"name": "length",
"nativeSrc": "1715:6:40",
"nodeType": "YulIdentifier",
"src": "1715:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "1709:2:40",
"nodeType": "YulIdentifier",
"src": "1709:2:40"
},
"nativeSrc": "1709:13:40",
"nodeType": "YulFunctionCall",
"src": "1709:13:40"
},
"nativeSrc": "1701:113:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "1723:19:40",
"nodeType": "YulBlock",
"src": "1723:19:40",
"statements": [
{
"nativeSrc": "1725:15:40",
"nodeType": "YulAssignment",
"src": "1725:15:40",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "1734:1:40",
"nodeType": "YulIdentifier",
"src": "1734:1:40"
},
{
"kind": "number",
"nativeSrc": "1737:2:40",
"nodeType": "YulLiteral",
"src": "1737:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1730:3:40",
"nodeType": "YulIdentifier",
"src": "1730:3:40"
},
"nativeSrc": "1730:10:40",
"nodeType": "YulFunctionCall",
"src": "1730:10:40"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "1725:1:40",
"nodeType": "YulIdentifier",
"src": "1725:1:40"
}
]
}
]
},
"pre": {
"nativeSrc": "1705:3:40",
"nodeType": "YulBlock",
"src": "1705:3:40",
"statements": []
},
"src": "1701:113:40"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "1834:3:40",
"nodeType": "YulIdentifier",
"src": "1834:3:40"
},
{
"name": "length",
"nativeSrc": "1839:6:40",
"nodeType": "YulIdentifier",
"src": "1839:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1830:3:40",
"nodeType": "YulIdentifier",
"src": "1830:3:40"
},
"nativeSrc": "1830:16:40",
"nodeType": "YulFunctionCall",
"src": "1830:16:40"
},
{
"kind": "number",
"nativeSrc": "1848:1:40",
"nodeType": "YulLiteral",
"src": "1848:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1823:6:40",
"nodeType": "YulIdentifier",
"src": "1823:6:40"
},
"nativeSrc": "1823:27:40",
"nodeType": "YulFunctionCall",
"src": "1823:27:40"
},
"nativeSrc": "1823:27:40",
"nodeType": "YulExpressionStatement",
"src": "1823:27:40"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "1610:246:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "1654:3:40",
"nodeType": "YulTypedName",
"src": "1654:3:40",
"type": ""
},
{
"name": "dst",
"nativeSrc": "1659:3:40",
"nodeType": "YulTypedName",
"src": "1659:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "1664:6:40",
"nodeType": "YulTypedName",
"src": "1664:6:40",
"type": ""
}
],
"src": "1610:246:40"
},
{
"body": {
"nativeSrc": "1957:339:40",
"nodeType": "YulBlock",
"src": "1957:339:40",
"statements": [
{
"nativeSrc": "1967:75:40",
"nodeType": "YulAssignment",
"src": "1967:75:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nativeSrc": "2034:6:40",
"nodeType": "YulIdentifier",
"src": "2034:6:40"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nativeSrc": "1992:41:40",
"nodeType": "YulIdentifier",
"src": "1992:41:40"
},
"nativeSrc": "1992:49:40",
"nodeType": "YulFunctionCall",
"src": "1992:49:40"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "1976:15:40",
"nodeType": "YulIdentifier",
"src": "1976:15:40"
},
"nativeSrc": "1976:66:40",
"nodeType": "YulFunctionCall",
"src": "1976:66:40"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "1967:5:40",
"nodeType": "YulIdentifier",
"src": "1967:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nativeSrc": "2058:5:40",
"nodeType": "YulIdentifier",
"src": "2058:5:40"
},
{
"name": "length",
"nativeSrc": "2065:6:40",
"nodeType": "YulIdentifier",
"src": "2065:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2051:6:40",
"nodeType": "YulIdentifier",
"src": "2051:6:40"
},
"nativeSrc": "2051:21:40",
"nodeType": "YulFunctionCall",
"src": "2051:21:40"
},
"nativeSrc": "2051:21:40",
"nodeType": "YulExpressionStatement",
"src": "2051:21:40"
},
{
"nativeSrc": "2081:27:40",
"nodeType": "YulVariableDeclaration",
"src": "2081:27:40",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "2096:5:40",
"nodeType": "YulIdentifier",
"src": "2096:5:40"
},
{
"kind": "number",
"nativeSrc": "2103:4:40",
"nodeType": "YulLiteral",
"src": "2103:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2092:3:40",
"nodeType": "YulIdentifier",
"src": "2092:3:40"
},
"nativeSrc": "2092:16:40",
"nodeType": "YulFunctionCall",
"src": "2092:16:40"
},
"variables": [
{
"name": "dst",
"nativeSrc": "2085:3:40",
"nodeType": "YulTypedName",
"src": "2085:3:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "2146:83:40",
"nodeType": "YulBlock",
"src": "2146:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "2148:77:40",
"nodeType": "YulIdentifier",
"src": "2148:77:40"
},
"nativeSrc": "2148:79:40",
"nodeType": "YulFunctionCall",
"src": "2148:79:40"
},
"nativeSrc": "2148:79:40",
"nodeType": "YulExpressionStatement",
"src": "2148:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "2127:3:40",
"nodeType": "YulIdentifier",
"src": "2127:3:40"
},
{
"name": "length",
"nativeSrc": "2132:6:40",
"nodeType": "YulIdentifier",
"src": "2132:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2123:3:40",
"nodeType": "YulIdentifier",
"src": "2123:3:40"
},
"nativeSrc": "2123:16:40",
"nodeType": "YulFunctionCall",
"src": "2123:16:40"
},
{
"name": "end",
"nativeSrc": "2141:3:40",
"nodeType": "YulIdentifier",
"src": "2141:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "2120:2:40",
"nodeType": "YulIdentifier",
"src": "2120:2:40"
},
"nativeSrc": "2120:25:40",
"nodeType": "YulFunctionCall",
"src": "2120:25:40"
},
"nativeSrc": "2117:112:40",
"nodeType": "YulIf",
"src": "2117:112:40"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nativeSrc": "2273:3:40",
"nodeType": "YulIdentifier",
"src": "2273:3:40"
},
{
"name": "dst",
"nativeSrc": "2278:3:40",
"nodeType": "YulIdentifier",
"src": "2278:3:40"
},
{
"name": "length",
"nativeSrc": "2283:6:40",
"nodeType": "YulIdentifier",
"src": "2283:6:40"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "2238:34:40",
"nodeType": "YulIdentifier",
"src": "2238:34:40"
},
"nativeSrc": "2238:52:40",
"nodeType": "YulFunctionCall",
"src": "2238:52:40"
},
"nativeSrc": "2238:52:40",
"nodeType": "YulExpressionStatement",
"src": "2238:52:40"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nativeSrc": "1862:434:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "1930:3:40",
"nodeType": "YulTypedName",
"src": "1930:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "1935:6:40",
"nodeType": "YulTypedName",
"src": "1935:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "1943:3:40",
"nodeType": "YulTypedName",
"src": "1943:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "1951:5:40",
"nodeType": "YulTypedName",
"src": "1951:5:40",
"type": ""
}
],
"src": "1862:434:40"
},
{
"body": {
"nativeSrc": "2389:282:40",
"nodeType": "YulBlock",
"src": "2389:282:40",
"statements": [
{
"body": {
"nativeSrc": "2438:83:40",
"nodeType": "YulBlock",
"src": "2438:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "2440:77:40",
"nodeType": "YulIdentifier",
"src": "2440:77:40"
},
"nativeSrc": "2440:79:40",
"nodeType": "YulFunctionCall",
"src": "2440:79:40"
},
"nativeSrc": "2440:79:40",
"nodeType": "YulExpressionStatement",
"src": "2440:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "2417:6:40",
"nodeType": "YulIdentifier",
"src": "2417:6:40"
},
{
"kind": "number",
"nativeSrc": "2425:4:40",
"nodeType": "YulLiteral",
"src": "2425:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2413:3:40",
"nodeType": "YulIdentifier",
"src": "2413:3:40"
},
"nativeSrc": "2413:17:40",
"nodeType": "YulFunctionCall",
"src": "2413:17:40"
},
{
"name": "end",
"nativeSrc": "2432:3:40",
"nodeType": "YulIdentifier",
"src": "2432:3:40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2409:3:40",
"nodeType": "YulIdentifier",
"src": "2409:3:40"
},
"nativeSrc": "2409:27:40",
"nodeType": "YulFunctionCall",
"src": "2409:27:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2402:6:40",
"nodeType": "YulIdentifier",
"src": "2402:6:40"
},
"nativeSrc": "2402:35:40",
"nodeType": "YulFunctionCall",
"src": "2402:35:40"
},
"nativeSrc": "2399:122:40",
"nodeType": "YulIf",
"src": "2399:122:40"
},
{
"nativeSrc": "2530:27:40",
"nodeType": "YulVariableDeclaration",
"src": "2530:27:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2550:6:40",
"nodeType": "YulIdentifier",
"src": "2550:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "2544:5:40",
"nodeType": "YulIdentifier",
"src": "2544:5:40"
},
"nativeSrc": "2544:13:40",
"nodeType": "YulFunctionCall",
"src": "2544:13:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "2534:6:40",
"nodeType": "YulTypedName",
"src": "2534:6:40",
"type": ""
}
]
},
{
"nativeSrc": "2566:99:40",
"nodeType": "YulAssignment",
"src": "2566:99:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "2638:6:40",
"nodeType": "YulIdentifier",
"src": "2638:6:40"
},
{
"kind": "number",
"nativeSrc": "2646:4:40",
"nodeType": "YulLiteral",
"src": "2646:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2634:3:40",
"nodeType": "YulIdentifier",
"src": "2634:3:40"
},
"nativeSrc": "2634:17:40",
"nodeType": "YulFunctionCall",
"src": "2634:17:40"
},
{
"name": "length",
"nativeSrc": "2653:6:40",
"nodeType": "YulIdentifier",
"src": "2653:6:40"
},
{
"name": "end",
"nativeSrc": "2661:3:40",
"nodeType": "YulIdentifier",
"src": "2661:3:40"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nativeSrc": "2575:58:40",
"nodeType": "YulIdentifier",
"src": "2575:58:40"
},
"nativeSrc": "2575:90:40",
"nodeType": "YulFunctionCall",
"src": "2575:90:40"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "2566:5:40",
"nodeType": "YulIdentifier",
"src": "2566:5:40"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "2316:355:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2367:6:40",
"nodeType": "YulTypedName",
"src": "2367:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "2375:3:40",
"nodeType": "YulTypedName",
"src": "2375:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "2383:5:40",
"nodeType": "YulTypedName",
"src": "2383:5:40",
"type": ""
}
],
"src": "2316:355:40"
},
{
"body": {
"nativeSrc": "2722:32:40",
"nodeType": "YulBlock",
"src": "2722:32:40",
"statements": [
{
"nativeSrc": "2732:16:40",
"nodeType": "YulAssignment",
"src": "2732:16:40",
"value": {
"name": "value",
"nativeSrc": "2743:5:40",
"nodeType": "YulIdentifier",
"src": "2743:5:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2732:7:40",
"nodeType": "YulIdentifier",
"src": "2732:7:40"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "2677:77:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2704:5:40",
"nodeType": "YulTypedName",
"src": "2704:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2714:7:40",
"nodeType": "YulTypedName",
"src": "2714:7:40",
"type": ""
}
],
"src": "2677:77:40"
},
{
"body": {
"nativeSrc": "2803:79:40",
"nodeType": "YulBlock",
"src": "2803:79:40",
"statements": [
{
"body": {
"nativeSrc": "2860:16:40",
"nodeType": "YulBlock",
"src": "2860:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2869:1:40",
"nodeType": "YulLiteral",
"src": "2869:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2872:1:40",
"nodeType": "YulLiteral",
"src": "2872:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2862:6:40",
"nodeType": "YulIdentifier",
"src": "2862:6:40"
},
"nativeSrc": "2862:12:40",
"nodeType": "YulFunctionCall",
"src": "2862:12:40"
},
"nativeSrc": "2862:12:40",
"nodeType": "YulExpressionStatement",
"src": "2862:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2826:5:40",
"nodeType": "YulIdentifier",
"src": "2826:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2851:5:40",
"nodeType": "YulIdentifier",
"src": "2851:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2833:17:40",
"nodeType": "YulIdentifier",
"src": "2833:17:40"
},
"nativeSrc": "2833:24:40",
"nodeType": "YulFunctionCall",
"src": "2833:24:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "2823:2:40",
"nodeType": "YulIdentifier",
"src": "2823:2:40"
},
"nativeSrc": "2823:35:40",
"nodeType": "YulFunctionCall",
"src": "2823:35:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2816:6:40",
"nodeType": "YulIdentifier",
"src": "2816:6:40"
},
"nativeSrc": "2816:43:40",
"nodeType": "YulFunctionCall",
"src": "2816:43:40"
},
"nativeSrc": "2813:63:40",
"nodeType": "YulIf",
"src": "2813:63:40"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "2760:122:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2796:5:40",
"nodeType": "YulTypedName",
"src": "2796:5:40",
"type": ""
}
],
"src": "2760:122:40"
},
{
"body": {
"nativeSrc": "2951:80:40",
"nodeType": "YulBlock",
"src": "2951:80:40",
"statements": [
{
"nativeSrc": "2961:22:40",
"nodeType": "YulAssignment",
"src": "2961:22:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2976:6:40",
"nodeType": "YulIdentifier",
"src": "2976:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "2970:5:40",
"nodeType": "YulIdentifier",
"src": "2970:5:40"
},
"nativeSrc": "2970:13:40",
"nodeType": "YulFunctionCall",
"src": "2970:13:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2961:5:40",
"nodeType": "YulIdentifier",
"src": "2961:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "3019:5:40",
"nodeType": "YulIdentifier",
"src": "3019:5:40"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "2992:26:40",
"nodeType": "YulIdentifier",
"src": "2992:26:40"
},
"nativeSrc": "2992:33:40",
"nodeType": "YulFunctionCall",
"src": "2992:33:40"
},
"nativeSrc": "2992:33:40",
"nodeType": "YulExpressionStatement",
"src": "2992:33:40"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "2888:143:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2929:6:40",
"nodeType": "YulTypedName",
"src": "2929:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "2937:3:40",
"nodeType": "YulTypedName",
"src": "2937:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2945:5:40",
"nodeType": "YulTypedName",
"src": "2945:5:40",
"type": ""
}
],
"src": "2888:143:40"
},
{
"body": {
"nativeSrc": "3082:81:40",
"nodeType": "YulBlock",
"src": "3082:81:40",
"statements": [
{
"nativeSrc": "3092:65:40",
"nodeType": "YulAssignment",
"src": "3092:65:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "3107:5:40",
"nodeType": "YulIdentifier",
"src": "3107:5:40"
},
{
"kind": "number",
"nativeSrc": "3114:42:40",
"nodeType": "YulLiteral",
"src": "3114:42:40",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "3103:3:40",
"nodeType": "YulIdentifier",
"src": "3103:3:40"
},
"nativeSrc": "3103:54:40",
"nodeType": "YulFunctionCall",
"src": "3103:54:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "3092:7:40",
"nodeType": "YulIdentifier",
"src": "3092:7:40"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "3037:126:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3064:5:40",
"nodeType": "YulTypedName",
"src": "3064:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "3074:7:40",
"nodeType": "YulTypedName",
"src": "3074:7:40",
"type": ""
}
],
"src": "3037:126:40"
},
{
"body": {
"nativeSrc": "3214:51:40",
"nodeType": "YulBlock",
"src": "3214:51:40",
"statements": [
{
"nativeSrc": "3224:35:40",
"nodeType": "YulAssignment",
"src": "3224:35:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "3253:5:40",
"nodeType": "YulIdentifier",
"src": "3253:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "3235:17:40",
"nodeType": "YulIdentifier",
"src": "3235:17:40"
},
"nativeSrc": "3235:24:40",
"nodeType": "YulFunctionCall",
"src": "3235:24:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "3224:7:40",
"nodeType": "YulIdentifier",
"src": "3224:7:40"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "3169:96:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3196:5:40",
"nodeType": "YulTypedName",
"src": "3196:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "3206:7:40",
"nodeType": "YulTypedName",
"src": "3206:7:40",
"type": ""
}
],
"src": "3169:96:40"
},
{
"body": {
"nativeSrc": "3314:79:40",
"nodeType": "YulBlock",
"src": "3314:79:40",
"statements": [
{
"body": {
"nativeSrc": "3371:16:40",
"nodeType": "YulBlock",
"src": "3371:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "3380:1:40",
"nodeType": "YulLiteral",
"src": "3380:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "3383:1:40",
"nodeType": "YulLiteral",
"src": "3383:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "3373:6:40",
"nodeType": "YulIdentifier",
"src": "3373:6:40"
},
"nativeSrc": "3373:12:40",
"nodeType": "YulFunctionCall",
"src": "3373:12:40"
},
"nativeSrc": "3373:12:40",
"nodeType": "YulExpressionStatement",
"src": "3373:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "3337:5:40",
"nodeType": "YulIdentifier",
"src": "3337:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3362:5:40",
"nodeType": "YulIdentifier",
"src": "3362:5:40"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "3344:17:40",
"nodeType": "YulIdentifier",
"src": "3344:17:40"
},
"nativeSrc": "3344:24:40",
"nodeType": "YulFunctionCall",
"src": "3344:24:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "3334:2:40",
"nodeType": "YulIdentifier",
"src": "3334:2:40"
},
"nativeSrc": "3334:35:40",
"nodeType": "YulFunctionCall",
"src": "3334:35:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3327:6:40",
"nodeType": "YulIdentifier",
"src": "3327:6:40"
},
"nativeSrc": "3327:43:40",
"nodeType": "YulFunctionCall",
"src": "3327:43:40"
},
"nativeSrc": "3324:63:40",
"nodeType": "YulIf",
"src": "3324:63:40"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "3271:122:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3307:5:40",
"nodeType": "YulTypedName",
"src": "3307:5:40",
"type": ""
}
],
"src": "3271:122:40"
},
{
"body": {
"nativeSrc": "3462:80:40",
"nodeType": "YulBlock",
"src": "3462:80:40",
"statements": [
{
"nativeSrc": "3472:22:40",
"nodeType": "YulAssignment",
"src": "3472:22:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "3487:6:40",
"nodeType": "YulIdentifier",
"src": "3487:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "3481:5:40",
"nodeType": "YulIdentifier",
"src": "3481:5:40"
},
"nativeSrc": "3481:13:40",
"nodeType": "YulFunctionCall",
"src": "3481:13:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "3472:5:40",
"nodeType": "YulIdentifier",
"src": "3472:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "3530:5:40",
"nodeType": "YulIdentifier",
"src": "3530:5:40"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "3503:26:40",
"nodeType": "YulIdentifier",
"src": "3503:26:40"
},
"nativeSrc": "3503:33:40",
"nodeType": "YulFunctionCall",
"src": "3503:33:40"
},
"nativeSrc": "3503:33:40",
"nodeType": "YulExpressionStatement",
"src": "3503:33:40"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nativeSrc": "3399:143:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "3440:6:40",
"nodeType": "YulTypedName",
"src": "3440:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "3448:3:40",
"nodeType": "YulTypedName",
"src": "3448:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "3456:5:40",
"nodeType": "YulTypedName",
"src": "3456:5:40",
"type": ""
}
],
"src": "3399:143:40"
},
{
"body": {
"nativeSrc": "3713:1158:40",
"nodeType": "YulBlock",
"src": "3713:1158:40",
"statements": [
{
"body": {
"nativeSrc": "3760:83:40",
"nodeType": "YulBlock",
"src": "3760:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "3762:77:40",
"nodeType": "YulIdentifier",
"src": "3762:77:40"
},
"nativeSrc": "3762:79:40",
"nodeType": "YulFunctionCall",
"src": "3762:79:40"
},
"nativeSrc": "3762:79:40",
"nodeType": "YulExpressionStatement",
"src": "3762:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "3734:7:40",
"nodeType": "YulIdentifier",
"src": "3734:7:40"
},
{
"name": "headStart",
"nativeSrc": "3743:9:40",
"nodeType": "YulIdentifier",
"src": "3743:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3730:3:40",
"nodeType": "YulIdentifier",
"src": "3730:3:40"
},
"nativeSrc": "3730:23:40",
"nodeType": "YulFunctionCall",
"src": "3730:23:40"
},
{
"kind": "number",
"nativeSrc": "3755:3:40",
"nodeType": "YulLiteral",
"src": "3755:3:40",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3726:3:40",
"nodeType": "YulIdentifier",
"src": "3726:3:40"
},
"nativeSrc": "3726:33:40",
"nodeType": "YulFunctionCall",
"src": "3726:33:40"
},
"nativeSrc": "3723:120:40",
"nodeType": "YulIf",
"src": "3723:120:40"
},
{
"nativeSrc": "3853:291:40",
"nodeType": "YulBlock",
"src": "3853:291:40",
"statements": [
{
"nativeSrc": "3868:38:40",
"nodeType": "YulVariableDeclaration",
"src": "3868:38:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3892:9:40",
"nodeType": "YulIdentifier",
"src": "3892:9:40"
},
{
"kind": "number",
"nativeSrc": "3903:1:40",
"nodeType": "YulLiteral",
"src": "3903:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3888:3:40",
"nodeType": "YulIdentifier",
"src": "3888:3:40"
},
"nativeSrc": "3888:17:40",
"nodeType": "YulFunctionCall",
"src": "3888:17:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "3882:5:40",
"nodeType": "YulIdentifier",
"src": "3882:5:40"
},
"nativeSrc": "3882:24:40",
"nodeType": "YulFunctionCall",
"src": "3882:24:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "3872:6:40",
"nodeType": "YulTypedName",
"src": "3872:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "3953:83:40",
"nodeType": "YulBlock",
"src": "3953:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "3955:77:40",
"nodeType": "YulIdentifier",
"src": "3955:77:40"
},
"nativeSrc": "3955:79:40",
"nodeType": "YulFunctionCall",
"src": "3955:79:40"
},
"nativeSrc": "3955:79:40",
"nodeType": "YulExpressionStatement",
"src": "3955:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "3925:6:40",
"nodeType": "YulIdentifier",
"src": "3925:6:40"
},
{
"kind": "number",
"nativeSrc": "3933:18:40",
"nodeType": "YulLiteral",
"src": "3933:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "3922:2:40",
"nodeType": "YulIdentifier",
"src": "3922:2:40"
},
"nativeSrc": "3922:30:40",
"nodeType": "YulFunctionCall",
"src": "3922:30:40"
},
"nativeSrc": "3919:117:40",
"nodeType": "YulIf",
"src": "3919:117:40"
},
{
"nativeSrc": "4050:84:40",
"nodeType": "YulAssignment",
"src": "4050:84:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4106:9:40",
"nodeType": "YulIdentifier",
"src": "4106:9:40"
},
{
"name": "offset",
"nativeSrc": "4117:6:40",
"nodeType": "YulIdentifier",
"src": "4117:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4102:3:40",
"nodeType": "YulIdentifier",
"src": "4102:3:40"
},
"nativeSrc": "4102:22:40",
"nodeType": "YulFunctionCall",
"src": "4102:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "4126:7:40",
"nodeType": "YulIdentifier",
"src": "4126:7:40"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "4060:41:40",
"nodeType": "YulIdentifier",
"src": "4060:41:40"
},
"nativeSrc": "4060:74:40",
"nodeType": "YulFunctionCall",
"src": "4060:74:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4050:6:40",
"nodeType": "YulIdentifier",
"src": "4050:6:40"
}
]
}
]
},
{
"nativeSrc": "4154:292:40",
"nodeType": "YulBlock",
"src": "4154:292:40",
"statements": [
{
"nativeSrc": "4169:39:40",
"nodeType": "YulVariableDeclaration",
"src": "4169:39:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4193:9:40",
"nodeType": "YulIdentifier",
"src": "4193:9:40"
},
{
"kind": "number",
"nativeSrc": "4204:2:40",
"nodeType": "YulLiteral",
"src": "4204:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4189:3:40",
"nodeType": "YulIdentifier",
"src": "4189:3:40"
},
"nativeSrc": "4189:18:40",
"nodeType": "YulFunctionCall",
"src": "4189:18:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4183:5:40",
"nodeType": "YulIdentifier",
"src": "4183:5:40"
},
"nativeSrc": "4183:25:40",
"nodeType": "YulFunctionCall",
"src": "4183:25:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4173:6:40",
"nodeType": "YulTypedName",
"src": "4173:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4255:83:40",
"nodeType": "YulBlock",
"src": "4255:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "4257:77:40",
"nodeType": "YulIdentifier",
"src": "4257:77:40"
},
"nativeSrc": "4257:79:40",
"nodeType": "YulFunctionCall",
"src": "4257:79:40"
},
"nativeSrc": "4257:79:40",
"nodeType": "YulExpressionStatement",
"src": "4257:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "4227:6:40",
"nodeType": "YulIdentifier",
"src": "4227:6:40"
},
{
"kind": "number",
"nativeSrc": "4235:18:40",
"nodeType": "YulLiteral",
"src": "4235:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "4224:2:40",
"nodeType": "YulIdentifier",
"src": "4224:2:40"
},
"nativeSrc": "4224:30:40",
"nodeType": "YulFunctionCall",
"src": "4224:30:40"
},
"nativeSrc": "4221:117:40",
"nodeType": "YulIf",
"src": "4221:117:40"
},
{
"nativeSrc": "4352:84:40",
"nodeType": "YulAssignment",
"src": "4352:84:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4408:9:40",
"nodeType": "YulIdentifier",
"src": "4408:9:40"
},
{
"name": "offset",
"nativeSrc": "4419:6:40",
"nodeType": "YulIdentifier",
"src": "4419:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4404:3:40",
"nodeType": "YulIdentifier",
"src": "4404:3:40"
},
"nativeSrc": "4404:22:40",
"nodeType": "YulFunctionCall",
"src": "4404:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "4428:7:40",
"nodeType": "YulIdentifier",
"src": "4428:7:40"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "4362:41:40",
"nodeType": "YulIdentifier",
"src": "4362:41:40"
},
"nativeSrc": "4362:74:40",
"nodeType": "YulFunctionCall",
"src": "4362:74:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "4352:6:40",
"nodeType": "YulIdentifier",
"src": "4352:6:40"
}
]
}
]
},
{
"nativeSrc": "4456:129:40",
"nodeType": "YulBlock",
"src": "4456:129:40",
"statements": [
{
"nativeSrc": "4471:16:40",
"nodeType": "YulVariableDeclaration",
"src": "4471:16:40",
"value": {
"kind": "number",
"nativeSrc": "4485:2:40",
"nodeType": "YulLiteral",
"src": "4485:2:40",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4475:6:40",
"nodeType": "YulTypedName",
"src": "4475:6:40",
"type": ""
}
]
},
{
"nativeSrc": "4501:74:40",
"nodeType": "YulAssignment",
"src": "4501:74:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4547:9:40",
"nodeType": "YulIdentifier",
"src": "4547:9:40"
},
{
"name": "offset",
"nativeSrc": "4558:6:40",
"nodeType": "YulIdentifier",
"src": "4558:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4543:3:40",
"nodeType": "YulIdentifier",
"src": "4543:3:40"
},
"nativeSrc": "4543:22:40",
"nodeType": "YulFunctionCall",
"src": "4543:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "4567:7:40",
"nodeType": "YulIdentifier",
"src": "4567:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "4511:31:40",
"nodeType": "YulIdentifier",
"src": "4511:31:40"
},
"nativeSrc": "4511:64:40",
"nodeType": "YulFunctionCall",
"src": "4511:64:40"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "4501:6:40",
"nodeType": "YulIdentifier",
"src": "4501:6:40"
}
]
}
]
},
{
"nativeSrc": "4595:129:40",
"nodeType": "YulBlock",
"src": "4595:129:40",
"statements": [
{
"nativeSrc": "4610:16:40",
"nodeType": "YulVariableDeclaration",
"src": "4610:16:40",
"value": {
"kind": "number",
"nativeSrc": "4624:2:40",
"nodeType": "YulLiteral",
"src": "4624:2:40",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4614:6:40",
"nodeType": "YulTypedName",
"src": "4614:6:40",
"type": ""
}
]
},
{
"nativeSrc": "4640:74:40",
"nodeType": "YulAssignment",
"src": "4640:74:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4686:9:40",
"nodeType": "YulIdentifier",
"src": "4686:9:40"
},
{
"name": "offset",
"nativeSrc": "4697:6:40",
"nodeType": "YulIdentifier",
"src": "4697:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4682:3:40",
"nodeType": "YulIdentifier",
"src": "4682:3:40"
},
"nativeSrc": "4682:22:40",
"nodeType": "YulFunctionCall",
"src": "4682:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "4706:7:40",
"nodeType": "YulIdentifier",
"src": "4706:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nativeSrc": "4650:31:40",
"nodeType": "YulIdentifier",
"src": "4650:31:40"
},
"nativeSrc": "4650:64:40",
"nodeType": "YulFunctionCall",
"src": "4650:64:40"
},
"variableNames": [
{
"name": "value3",
"nativeSrc": "4640:6:40",
"nodeType": "YulIdentifier",
"src": "4640:6:40"
}
]
}
]
},
{
"nativeSrc": "4734:130:40",
"nodeType": "YulBlock",
"src": "4734:130:40",
"statements": [
{
"nativeSrc": "4749:17:40",
"nodeType": "YulVariableDeclaration",
"src": "4749:17:40",
"value": {
"kind": "number",
"nativeSrc": "4763:3:40",
"nodeType": "YulLiteral",
"src": "4763:3:40",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4753:6:40",
"nodeType": "YulTypedName",
"src": "4753:6:40",
"type": ""
}
]
},
{
"nativeSrc": "4780:74:40",
"nodeType": "YulAssignment",
"src": "4780:74:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4826:9:40",
"nodeType": "YulIdentifier",
"src": "4826:9:40"
},
{
"name": "offset",
"nativeSrc": "4837:6:40",
"nodeType": "YulIdentifier",
"src": "4837:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4822:3:40",
"nodeType": "YulIdentifier",
"src": "4822:3:40"
},
"nativeSrc": "4822:22:40",
"nodeType": "YulFunctionCall",
"src": "4822:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "4846:7:40",
"nodeType": "YulIdentifier",
"src": "4846:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nativeSrc": "4790:31:40",
"nodeType": "YulIdentifier",
"src": "4790:31:40"
},
"nativeSrc": "4790:64:40",
"nodeType": "YulFunctionCall",
"src": "4790:64:40"
},
"variableNames": [
{
"name": "value4",
"nativeSrc": "4780:6:40",
"nodeType": "YulIdentifier",
"src": "4780:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_addresst_address_fromMemory",
"nativeSrc": "3548:1323:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3651:9:40",
"nodeType": "YulTypedName",
"src": "3651:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "3662:7:40",
"nodeType": "YulTypedName",
"src": "3662:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "3674:6:40",
"nodeType": "YulTypedName",
"src": "3674:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "3682:6:40",
"nodeType": "YulTypedName",
"src": "3682:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "3690:6:40",
"nodeType": "YulTypedName",
"src": "3690:6:40",
"type": ""
},
{
"name": "value3",
"nativeSrc": "3698:6:40",
"nodeType": "YulTypedName",
"src": "3698:6:40",
"type": ""
},
{
"name": "value4",
"nativeSrc": "3706:6:40",
"nodeType": "YulTypedName",
"src": "3706:6:40",
"type": ""
}
],
"src": "3548:1323:40"
},
{
"body": {
"nativeSrc": "4942:53:40",
"nodeType": "YulBlock",
"src": "4942:53:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4959:3:40",
"nodeType": "YulIdentifier",
"src": "4959:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "4982:5:40",
"nodeType": "YulIdentifier",
"src": "4982:5:40"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "4964:17:40",
"nodeType": "YulIdentifier",
"src": "4964:17:40"
},
"nativeSrc": "4964:24:40",
"nodeType": "YulFunctionCall",
"src": "4964:24:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4952:6:40",
"nodeType": "YulIdentifier",
"src": "4952:6:40"
},
"nativeSrc": "4952:37:40",
"nodeType": "YulFunctionCall",
"src": "4952:37:40"
},
"nativeSrc": "4952:37:40",
"nodeType": "YulExpressionStatement",
"src": "4952:37:40"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "4877:118:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4930:5:40",
"nodeType": "YulTypedName",
"src": "4930:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "4937:3:40",
"nodeType": "YulTypedName",
"src": "4937:3:40",
"type": ""
}
],
"src": "4877:118:40"
},
{
"body": {
"nativeSrc": "5099:124:40",
"nodeType": "YulBlock",
"src": "5099:124:40",
"statements": [
{
"nativeSrc": "5109:26:40",
"nodeType": "YulAssignment",
"src": "5109:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "5121:9:40",
"nodeType": "YulIdentifier",
"src": "5121:9:40"
},
{
"kind": "number",
"nativeSrc": "5132:2:40",
"nodeType": "YulLiteral",
"src": "5132:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5117:3:40",
"nodeType": "YulIdentifier",
"src": "5117:3:40"
},
"nativeSrc": "5117:18:40",
"nodeType": "YulFunctionCall",
"src": "5117:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "5109:4:40",
"nodeType": "YulIdentifier",
"src": "5109:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "5189:6:40",
"nodeType": "YulIdentifier",
"src": "5189:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5202:9:40",
"nodeType": "YulIdentifier",
"src": "5202:9:40"
},
{
"kind": "number",
"nativeSrc": "5213:1:40",
"nodeType": "YulLiteral",
"src": "5213:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5198:3:40",
"nodeType": "YulIdentifier",
"src": "5198:3:40"
},
"nativeSrc": "5198:17:40",
"nodeType": "YulFunctionCall",
"src": "5198:17:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "5145:43:40",
"nodeType": "YulIdentifier",
"src": "5145:43:40"
},
"nativeSrc": "5145:71:40",
"nodeType": "YulFunctionCall",
"src": "5145:71:40"
},
"nativeSrc": "5145:71:40",
"nodeType": "YulExpressionStatement",
"src": "5145:71:40"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nativeSrc": "5001:222:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5071:9:40",
"nodeType": "YulTypedName",
"src": "5071:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "5083:6:40",
"nodeType": "YulTypedName",
"src": "5083:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "5094:4:40",
"nodeType": "YulTypedName",
"src": "5094:4:40",
"type": ""
}
],
"src": "5001:222:40"
},
{
"body": {
"nativeSrc": "5272:43:40",
"nodeType": "YulBlock",
"src": "5272:43:40",
"statements": [
{
"nativeSrc": "5282:27:40",
"nodeType": "YulAssignment",
"src": "5282:27:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "5297:5:40",
"nodeType": "YulIdentifier",
"src": "5297:5:40"
},
{
"kind": "number",
"nativeSrc": "5304:4:40",
"nodeType": "YulLiteral",
"src": "5304:4:40",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5293:3:40",
"nodeType": "YulIdentifier",
"src": "5293:3:40"
},
"nativeSrc": "5293:16:40",
"nodeType": "YulFunctionCall",
"src": "5293:16:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "5282:7:40",
"nodeType": "YulIdentifier",
"src": "5282:7:40"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nativeSrc": "5229:86:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5254:5:40",
"nodeType": "YulTypedName",
"src": "5254:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "5264:7:40",
"nodeType": "YulTypedName",
"src": "5264:7:40",
"type": ""
}
],
"src": "5229:86:40"
},
{
"body": {
"nativeSrc": "5349:152:40",
"nodeType": "YulBlock",
"src": "5349:152:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5366:1:40",
"nodeType": "YulLiteral",
"src": "5366:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5369:77:40",
"nodeType": "YulLiteral",
"src": "5369:77:40",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5359:6:40",
"nodeType": "YulIdentifier",
"src": "5359:6:40"
},
"nativeSrc": "5359:88:40",
"nodeType": "YulFunctionCall",
"src": "5359:88:40"
},
"nativeSrc": "5359:88:40",
"nodeType": "YulExpressionStatement",
"src": "5359:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5463:1:40",
"nodeType": "YulLiteral",
"src": "5463:1:40",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "5466:4:40",
"nodeType": "YulLiteral",
"src": "5466:4:40",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5456:6:40",
"nodeType": "YulIdentifier",
"src": "5456:6:40"
},
"nativeSrc": "5456:15:40",
"nodeType": "YulFunctionCall",
"src": "5456:15:40"
},
"nativeSrc": "5456:15:40",
"nodeType": "YulExpressionStatement",
"src": "5456:15:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5487:1:40",
"nodeType": "YulLiteral",
"src": "5487:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5490:4:40",
"nodeType": "YulLiteral",
"src": "5490:4:40",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "5480:6:40",
"nodeType": "YulIdentifier",
"src": "5480:6:40"
},
"nativeSrc": "5480:15:40",
"nodeType": "YulFunctionCall",
"src": "5480:15:40"
},
"nativeSrc": "5480:15:40",
"nodeType": "YulExpressionStatement",
"src": "5480:15:40"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "5321:180:40",
"nodeType": "YulFunctionDefinition",
"src": "5321:180:40"
},
{
"body": {
"nativeSrc": "5550:148:40",
"nodeType": "YulBlock",
"src": "5550:148:40",
"statements": [
{
"nativeSrc": "5560:23:40",
"nodeType": "YulAssignment",
"src": "5560:23:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "5581:1:40",
"nodeType": "YulIdentifier",
"src": "5581:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "5565:15:40",
"nodeType": "YulIdentifier",
"src": "5565:15:40"
},
"nativeSrc": "5565:18:40",
"nodeType": "YulFunctionCall",
"src": "5565:18:40"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "5560:1:40",
"nodeType": "YulIdentifier",
"src": "5560:1:40"
}
]
},
{
"nativeSrc": "5592:23:40",
"nodeType": "YulAssignment",
"src": "5592:23:40",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "5613:1:40",
"nodeType": "YulIdentifier",
"src": "5613:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "5597:15:40",
"nodeType": "YulIdentifier",
"src": "5597:15:40"
},
"nativeSrc": "5597:18:40",
"nodeType": "YulFunctionCall",
"src": "5597:18:40"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "5592:1:40",
"nodeType": "YulIdentifier",
"src": "5592:1:40"
}
]
},
{
"nativeSrc": "5624:17:40",
"nodeType": "YulAssignment",
"src": "5624:17:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "5636:1:40",
"nodeType": "YulIdentifier",
"src": "5636:1:40"
},
{
"name": "y",
"nativeSrc": "5639:1:40",
"nodeType": "YulIdentifier",
"src": "5639:1:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "5632:3:40",
"nodeType": "YulIdentifier",
"src": "5632:3:40"
},
"nativeSrc": "5632:9:40",
"nodeType": "YulFunctionCall",
"src": "5632:9:40"
},
"variableNames": [
{
"name": "diff",
"nativeSrc": "5624:4:40",
"nodeType": "YulIdentifier",
"src": "5624:4:40"
}
]
},
{
"body": {
"nativeSrc": "5669:22:40",
"nodeType": "YulBlock",
"src": "5669:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "5671:16:40",
"nodeType": "YulIdentifier",
"src": "5671:16:40"
},
"nativeSrc": "5671:18:40",
"nodeType": "YulFunctionCall",
"src": "5671:18:40"
},
"nativeSrc": "5671:18:40",
"nodeType": "YulExpressionStatement",
"src": "5671:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nativeSrc": "5657:4:40",
"nodeType": "YulIdentifier",
"src": "5657:4:40"
},
{
"kind": "number",
"nativeSrc": "5663:4:40",
"nodeType": "YulLiteral",
"src": "5663:4:40",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "5654:2:40",
"nodeType": "YulIdentifier",
"src": "5654:2:40"
},
"nativeSrc": "5654:14:40",
"nodeType": "YulFunctionCall",
"src": "5654:14:40"
},
"nativeSrc": "5651:40:40",
"nodeType": "YulIf",
"src": "5651:40:40"
}
]
},
"name": "checked_sub_t_uint8",
"nativeSrc": "5507:191:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "5536:1:40",
"nodeType": "YulTypedName",
"src": "5536:1:40",
"type": ""
},
{
"name": "y",
"nativeSrc": "5539:1:40",
"nodeType": "YulTypedName",
"src": "5539:1:40",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nativeSrc": "5545:4:40",
"nodeType": "YulTypedName",
"src": "5545:4:40",
"type": ""
}
],
"src": "5507:191:40"
},
{
"body": {
"nativeSrc": "5755:51:40",
"nodeType": "YulBlock",
"src": "5755:51:40",
"statements": [
{
"nativeSrc": "5765:34:40",
"nodeType": "YulAssignment",
"src": "5765:34:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5790:1:40",
"nodeType": "YulLiteral",
"src": "5790:1:40",
"type": "",
"value": "1"
},
{
"name": "value",
"nativeSrc": "5793:5:40",
"nodeType": "YulIdentifier",
"src": "5793:5:40"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "5786:3:40",
"nodeType": "YulIdentifier",
"src": "5786:3:40"
},
"nativeSrc": "5786:13:40",
"nodeType": "YulFunctionCall",
"src": "5786:13:40"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "5765:8:40",
"nodeType": "YulIdentifier",
"src": "5765:8:40"
}
]
}
]
},
"name": "shift_right_1_unsigned",
"nativeSrc": "5704:102:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5736:5:40",
"nodeType": "YulTypedName",
"src": "5736:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "5746:8:40",
"nodeType": "YulTypedName",
"src": "5746:8:40",
"type": ""
}
],
"src": "5704:102:40"
},
{
"body": {
"nativeSrc": "5885:775:40",
"nodeType": "YulBlock",
"src": "5885:775:40",
"statements": [
{
"nativeSrc": "5895:15:40",
"nodeType": "YulAssignment",
"src": "5895:15:40",
"value": {
"name": "_power",
"nativeSrc": "5904:6:40",
"nodeType": "YulIdentifier",
"src": "5904:6:40"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "5895:5:40",
"nodeType": "YulIdentifier",
"src": "5895:5:40"
}
]
},
{
"nativeSrc": "5919:14:40",
"nodeType": "YulAssignment",
"src": "5919:14:40",
"value": {
"name": "_base",
"nativeSrc": "5928:5:40",
"nodeType": "YulIdentifier",
"src": "5928:5:40"
},
"variableNames": [
{
"name": "base",
"nativeSrc": "5919:4:40",
"nodeType": "YulIdentifier",
"src": "5919:4:40"
}
]
},
{
"body": {
"nativeSrc": "5977:677:40",
"nodeType": "YulBlock",
"src": "5977:677:40",
"statements": [
{
"body": {
"nativeSrc": "6065:22:40",
"nodeType": "YulBlock",
"src": "6065:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "6067:16:40",
"nodeType": "YulIdentifier",
"src": "6067:16:40"
},
"nativeSrc": "6067:18:40",
"nodeType": "YulFunctionCall",
"src": "6067:18:40"
},
"nativeSrc": "6067:18:40",
"nodeType": "YulExpressionStatement",
"src": "6067:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "base",
"nativeSrc": "6043:4:40",
"nodeType": "YulIdentifier",
"src": "6043:4:40"
},
{
"arguments": [
{
"name": "max",
"nativeSrc": "6053:3:40",
"nodeType": "YulIdentifier",
"src": "6053:3:40"
},
{
"name": "base",
"nativeSrc": "6058:4:40",
"nodeType": "YulIdentifier",
"src": "6058:4:40"
}
],
"functionName": {
"name": "div",
"nativeSrc": "6049:3:40",
"nodeType": "YulIdentifier",
"src": "6049:3:40"
},
"nativeSrc": "6049:14:40",
"nodeType": "YulFunctionCall",
"src": "6049:14:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "6040:2:40",
"nodeType": "YulIdentifier",
"src": "6040:2:40"
},
"nativeSrc": "6040:24:40",
"nodeType": "YulFunctionCall",
"src": "6040:24:40"
},
"nativeSrc": "6037:50:40",
"nodeType": "YulIf",
"src": "6037:50:40"
},
{
"body": {
"nativeSrc": "6132:419:40",
"nodeType": "YulBlock",
"src": "6132:419:40",
"statements": [
{
"nativeSrc": "6512:25:40",
"nodeType": "YulAssignment",
"src": "6512:25:40",
"value": {
"arguments": [
{
"name": "power",
"nativeSrc": "6525:5:40",
"nodeType": "YulIdentifier",
"src": "6525:5:40"
},
{
"name": "base",
"nativeSrc": "6532:4:40",
"nodeType": "YulIdentifier",
"src": "6532:4:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "6521:3:40",
"nodeType": "YulIdentifier",
"src": "6521:3:40"
},
"nativeSrc": "6521:16:40",
"nodeType": "YulFunctionCall",
"src": "6521:16:40"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "6512:5:40",
"nodeType": "YulIdentifier",
"src": "6512:5:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "6107:8:40",
"nodeType": "YulIdentifier",
"src": "6107:8:40"
},
{
"kind": "number",
"nativeSrc": "6117:1:40",
"nodeType": "YulLiteral",
"src": "6117:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "6103:3:40",
"nodeType": "YulIdentifier",
"src": "6103:3:40"
},
"nativeSrc": "6103:16:40",
"nodeType": "YulFunctionCall",
"src": "6103:16:40"
},
"nativeSrc": "6100:451:40",
"nodeType": "YulIf",
"src": "6100:451:40"
},
{
"nativeSrc": "6564:23:40",
"nodeType": "YulAssignment",
"src": "6564:23:40",
"value": {
"arguments": [
{
"name": "base",
"nativeSrc": "6576:4:40",
"nodeType": "YulIdentifier",
"src": "6576:4:40"
},
{
"name": "base",
"nativeSrc": "6582:4:40",
"nodeType": "YulIdentifier",
"src": "6582:4:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "6572:3:40",
"nodeType": "YulIdentifier",
"src": "6572:3:40"
},
"nativeSrc": "6572:15:40",
"nodeType": "YulFunctionCall",
"src": "6572:15:40"
},
"variableNames": [
{
"name": "base",
"nativeSrc": "6564:4:40",
"nodeType": "YulIdentifier",
"src": "6564:4:40"
}
]
},
{
"nativeSrc": "6600:44:40",
"nodeType": "YulAssignment",
"src": "6600:44:40",
"value": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "6635:8:40",
"nodeType": "YulIdentifier",
"src": "6635:8:40"
}
],
"functionName": {
"name": "shift_right_1_unsigned",
"nativeSrc": "6612:22:40",
"nodeType": "YulIdentifier",
"src": "6612:22:40"
},
"nativeSrc": "6612:32:40",
"nodeType": "YulFunctionCall",
"src": "6612:32:40"
},
"variableNames": [
{
"name": "exponent",
"nativeSrc": "6600:8:40",
"nodeType": "YulIdentifier",
"src": "6600:8:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "5953:8:40",
"nodeType": "YulIdentifier",
"src": "5953:8:40"
},
{
"kind": "number",
"nativeSrc": "5963:1:40",
"nodeType": "YulLiteral",
"src": "5963:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "5950:2:40",
"nodeType": "YulIdentifier",
"src": "5950:2:40"
},
"nativeSrc": "5950:15:40",
"nodeType": "YulFunctionCall",
"src": "5950:15:40"
},
"nativeSrc": "5942:712:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "5966:2:40",
"nodeType": "YulBlock",
"src": "5966:2:40",
"statements": []
},
"pre": {
"nativeSrc": "5946:3:40",
"nodeType": "YulBlock",
"src": "5946:3:40",
"statements": []
},
"src": "5942:712:40"
}
]
},
"name": "checked_exp_helper",
"nativeSrc": "5812:848:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "_power",
"nativeSrc": "5840:6:40",
"nodeType": "YulTypedName",
"src": "5840:6:40",
"type": ""
},
{
"name": "_base",
"nativeSrc": "5848:5:40",
"nodeType": "YulTypedName",
"src": "5848:5:40",
"type": ""
},
{
"name": "exponent",
"nativeSrc": "5855:8:40",
"nodeType": "YulTypedName",
"src": "5855:8:40",
"type": ""
},
{
"name": "max",
"nativeSrc": "5865:3:40",
"nodeType": "YulTypedName",
"src": "5865:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "power",
"nativeSrc": "5873:5:40",
"nodeType": "YulTypedName",
"src": "5873:5:40",
"type": ""
},
{
"name": "base",
"nativeSrc": "5880:4:40",
"nodeType": "YulTypedName",
"src": "5880:4:40",
"type": ""
}
],
"src": "5812:848:40"
},
{
"body": {
"nativeSrc": "6726:1013:40",
"nodeType": "YulBlock",
"src": "6726:1013:40",
"statements": [
{
"body": {
"nativeSrc": "6921:20:40",
"nodeType": "YulBlock",
"src": "6921:20:40",
"statements": [
{
"nativeSrc": "6923:10:40",
"nodeType": "YulAssignment",
"src": "6923:10:40",
"value": {
"kind": "number",
"nativeSrc": "6932:1:40",
"nodeType": "YulLiteral",
"src": "6932:1:40",
"type": "",
"value": "1"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "6923:5:40",
"nodeType": "YulIdentifier",
"src": "6923:5:40"
}
]
},
{
"nativeSrc": "6934:5:40",
"nodeType": "YulLeave",
"src": "6934:5:40"
}
]
},
"condition": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "6911:8:40",
"nodeType": "YulIdentifier",
"src": "6911:8:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "6904:6:40",
"nodeType": "YulIdentifier",
"src": "6904:6:40"
},
"nativeSrc": "6904:16:40",
"nodeType": "YulFunctionCall",
"src": "6904:16:40"
},
"nativeSrc": "6901:40:40",
"nodeType": "YulIf",
"src": "6901:40:40"
},
{
"body": {
"nativeSrc": "6966:20:40",
"nodeType": "YulBlock",
"src": "6966:20:40",
"statements": [
{
"nativeSrc": "6968:10:40",
"nodeType": "YulAssignment",
"src": "6968:10:40",
"value": {
"kind": "number",
"nativeSrc": "6977:1:40",
"nodeType": "YulLiteral",
"src": "6977:1:40",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "6968:5:40",
"nodeType": "YulIdentifier",
"src": "6968:5:40"
}
]
},
{
"nativeSrc": "6979:5:40",
"nodeType": "YulLeave",
"src": "6979:5:40"
}
]
},
"condition": {
"arguments": [
{
"name": "base",
"nativeSrc": "6960:4:40",
"nodeType": "YulIdentifier",
"src": "6960:4:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "6953:6:40",
"nodeType": "YulIdentifier",
"src": "6953:6:40"
},
"nativeSrc": "6953:12:40",
"nodeType": "YulFunctionCall",
"src": "6953:12:40"
},
"nativeSrc": "6950:36:40",
"nodeType": "YulIf",
"src": "6950:36:40"
},
{
"cases": [
{
"body": {
"nativeSrc": "7096:20:40",
"nodeType": "YulBlock",
"src": "7096:20:40",
"statements": [
{
"nativeSrc": "7098:10:40",
"nodeType": "YulAssignment",
"src": "7098:10:40",
"value": {
"kind": "number",
"nativeSrc": "7107:1:40",
"nodeType": "YulLiteral",
"src": "7107:1:40",
"type": "",
"value": "1"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "7098:5:40",
"nodeType": "YulIdentifier",
"src": "7098:5:40"
}
]
},
{
"nativeSrc": "7109:5:40",
"nodeType": "YulLeave",
"src": "7109:5:40"
}
]
},
"nativeSrc": "7089:27:40",
"nodeType": "YulCase",
"src": "7089:27:40",
"value": {
"kind": "number",
"nativeSrc": "7094:1:40",
"nodeType": "YulLiteral",
"src": "7094:1:40",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "7140:176:40",
"nodeType": "YulBlock",
"src": "7140:176:40",
"statements": [
{
"body": {
"nativeSrc": "7175:22:40",
"nodeType": "YulBlock",
"src": "7175:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "7177:16:40",
"nodeType": "YulIdentifier",
"src": "7177:16:40"
},
"nativeSrc": "7177:18:40",
"nodeType": "YulFunctionCall",
"src": "7177:18:40"
},
"nativeSrc": "7177:18:40",
"nodeType": "YulExpressionStatement",
"src": "7177:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "7160:8:40",
"nodeType": "YulIdentifier",
"src": "7160:8:40"
},
{
"kind": "number",
"nativeSrc": "7170:3:40",
"nodeType": "YulLiteral",
"src": "7170:3:40",
"type": "",
"value": "255"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7157:2:40",
"nodeType": "YulIdentifier",
"src": "7157:2:40"
},
"nativeSrc": "7157:17:40",
"nodeType": "YulFunctionCall",
"src": "7157:17:40"
},
"nativeSrc": "7154:43:40",
"nodeType": "YulIf",
"src": "7154:43:40"
},
{
"nativeSrc": "7210:25:40",
"nodeType": "YulAssignment",
"src": "7210:25:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7223:1:40",
"nodeType": "YulLiteral",
"src": "7223:1:40",
"type": "",
"value": "2"
},
{
"name": "exponent",
"nativeSrc": "7226:8:40",
"nodeType": "YulIdentifier",
"src": "7226:8:40"
}
],
"functionName": {
"name": "exp",
"nativeSrc": "7219:3:40",
"nodeType": "YulIdentifier",
"src": "7219:3:40"
},
"nativeSrc": "7219:16:40",
"nodeType": "YulFunctionCall",
"src": "7219:16:40"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "7210:5:40",
"nodeType": "YulIdentifier",
"src": "7210:5:40"
}
]
},
{
"body": {
"nativeSrc": "7266:22:40",
"nodeType": "YulBlock",
"src": "7266:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "7268:16:40",
"nodeType": "YulIdentifier",
"src": "7268:16:40"
},
"nativeSrc": "7268:18:40",
"nodeType": "YulFunctionCall",
"src": "7268:18:40"
},
"nativeSrc": "7268:18:40",
"nodeType": "YulExpressionStatement",
"src": "7268:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "power",
"nativeSrc": "7254:5:40",
"nodeType": "YulIdentifier",
"src": "7254:5:40"
},
{
"name": "max",
"nativeSrc": "7261:3:40",
"nodeType": "YulIdentifier",
"src": "7261:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7251:2:40",
"nodeType": "YulIdentifier",
"src": "7251:2:40"
},
"nativeSrc": "7251:14:40",
"nodeType": "YulFunctionCall",
"src": "7251:14:40"
},
"nativeSrc": "7248:40:40",
"nodeType": "YulIf",
"src": "7248:40:40"
},
{
"nativeSrc": "7301:5:40",
"nodeType": "YulLeave",
"src": "7301:5:40"
}
]
},
"nativeSrc": "7125:191:40",
"nodeType": "YulCase",
"src": "7125:191:40",
"value": {
"kind": "number",
"nativeSrc": "7130:1:40",
"nodeType": "YulLiteral",
"src": "7130:1:40",
"type": "",
"value": "2"
}
}
],
"expression": {
"name": "base",
"nativeSrc": "7046:4:40",
"nodeType": "YulIdentifier",
"src": "7046:4:40"
},
"nativeSrc": "7039:277:40",
"nodeType": "YulSwitch",
"src": "7039:277:40"
},
{
"body": {
"nativeSrc": "7448:123:40",
"nodeType": "YulBlock",
"src": "7448:123:40",
"statements": [
{
"nativeSrc": "7462:28:40",
"nodeType": "YulAssignment",
"src": "7462:28:40",
"value": {
"arguments": [
{
"name": "base",
"nativeSrc": "7475:4:40",
"nodeType": "YulIdentifier",
"src": "7475:4:40"
},
{
"name": "exponent",
"nativeSrc": "7481:8:40",
"nodeType": "YulIdentifier",
"src": "7481:8:40"
}
],
"functionName": {
"name": "exp",
"nativeSrc": "7471:3:40",
"nodeType": "YulIdentifier",
"src": "7471:3:40"
},
"nativeSrc": "7471:19:40",
"nodeType": "YulFunctionCall",
"src": "7471:19:40"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "7462:5:40",
"nodeType": "YulIdentifier",
"src": "7462:5:40"
}
]
},
{
"body": {
"nativeSrc": "7521:22:40",
"nodeType": "YulBlock",
"src": "7521:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "7523:16:40",
"nodeType": "YulIdentifier",
"src": "7523:16:40"
},
"nativeSrc": "7523:18:40",
"nodeType": "YulFunctionCall",
"src": "7523:18:40"
},
"nativeSrc": "7523:18:40",
"nodeType": "YulExpressionStatement",
"src": "7523:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "power",
"nativeSrc": "7509:5:40",
"nodeType": "YulIdentifier",
"src": "7509:5:40"
},
{
"name": "max",
"nativeSrc": "7516:3:40",
"nodeType": "YulIdentifier",
"src": "7516:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7506:2:40",
"nodeType": "YulIdentifier",
"src": "7506:2:40"
},
"nativeSrc": "7506:14:40",
"nodeType": "YulFunctionCall",
"src": "7506:14:40"
},
"nativeSrc": "7503:40:40",
"nodeType": "YulIf",
"src": "7503:40:40"
},
{
"nativeSrc": "7556:5:40",
"nodeType": "YulLeave",
"src": "7556:5:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "base",
"nativeSrc": "7351:4:40",
"nodeType": "YulIdentifier",
"src": "7351:4:40"
},
{
"kind": "number",
"nativeSrc": "7357:2:40",
"nodeType": "YulLiteral",
"src": "7357:2:40",
"type": "",
"value": "11"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "7348:2:40",
"nodeType": "YulIdentifier",
"src": "7348:2:40"
},
"nativeSrc": "7348:12:40",
"nodeType": "YulFunctionCall",
"src": "7348:12:40"
},
{
"arguments": [
{
"name": "exponent",
"nativeSrc": "7365:8:40",
"nodeType": "YulIdentifier",
"src": "7365:8:40"
},
{
"kind": "number",
"nativeSrc": "7375:2:40",
"nodeType": "YulLiteral",
"src": "7375:2:40",
"type": "",
"value": "78"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "7362:2:40",
"nodeType": "YulIdentifier",
"src": "7362:2:40"
},
"nativeSrc": "7362:16:40",
"nodeType": "YulFunctionCall",
"src": "7362:16:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "7344:3:40",
"nodeType": "YulIdentifier",
"src": "7344:3:40"
},
"nativeSrc": "7344:35:40",
"nodeType": "YulFunctionCall",
"src": "7344:35:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "base",
"nativeSrc": "7400:4:40",
"nodeType": "YulIdentifier",
"src": "7400:4:40"
},
{
"kind": "number",
"nativeSrc": "7406:3:40",
"nodeType": "YulLiteral",
"src": "7406:3:40",
"type": "",
"value": "307"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "7397:2:40",
"nodeType": "YulIdentifier",
"src": "7397:2:40"
},
"nativeSrc": "7397:13:40",
"nodeType": "YulFunctionCall",
"src": "7397:13:40"
},
{
"arguments": [
{
"name": "exponent",
"nativeSrc": "7415:8:40",
"nodeType": "YulIdentifier",
"src": "7415:8:40"
},
{
"kind": "number",
"nativeSrc": "7425:2:40",
"nodeType": "YulLiteral",
"src": "7425:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "7412:2:40",
"nodeType": "YulIdentifier",
"src": "7412:2:40"
},
"nativeSrc": "7412:16:40",
"nodeType": "YulFunctionCall",
"src": "7412:16:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "7393:3:40",
"nodeType": "YulIdentifier",
"src": "7393:3:40"
},
"nativeSrc": "7393:36:40",
"nodeType": "YulFunctionCall",
"src": "7393:36:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "7328:2:40",
"nodeType": "YulIdentifier",
"src": "7328:2:40"
},
"nativeSrc": "7328:111:40",
"nodeType": "YulFunctionCall",
"src": "7328:111:40"
},
"nativeSrc": "7325:246:40",
"nodeType": "YulIf",
"src": "7325:246:40"
},
{
"nativeSrc": "7581:57:40",
"nodeType": "YulAssignment",
"src": "7581:57:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7615:1:40",
"nodeType": "YulLiteral",
"src": "7615:1:40",
"type": "",
"value": "1"
},
{
"name": "base",
"nativeSrc": "7618:4:40",
"nodeType": "YulIdentifier",
"src": "7618:4:40"
},
{
"name": "exponent",
"nativeSrc": "7624:8:40",
"nodeType": "YulIdentifier",
"src": "7624:8:40"
},
{
"name": "max",
"nativeSrc": "7634:3:40",
"nodeType": "YulIdentifier",
"src": "7634:3:40"
}
],
"functionName": {
"name": "checked_exp_helper",
"nativeSrc": "7596:18:40",
"nodeType": "YulIdentifier",
"src": "7596:18:40"
},
"nativeSrc": "7596:42:40",
"nodeType": "YulFunctionCall",
"src": "7596:42:40"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "7581:5:40",
"nodeType": "YulIdentifier",
"src": "7581:5:40"
},
{
"name": "base",
"nativeSrc": "7588:4:40",
"nodeType": "YulIdentifier",
"src": "7588:4:40"
}
]
},
{
"body": {
"nativeSrc": "7677:22:40",
"nodeType": "YulBlock",
"src": "7677:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "7679:16:40",
"nodeType": "YulIdentifier",
"src": "7679:16:40"
},
"nativeSrc": "7679:18:40",
"nodeType": "YulFunctionCall",
"src": "7679:18:40"
},
"nativeSrc": "7679:18:40",
"nodeType": "YulExpressionStatement",
"src": "7679:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "power",
"nativeSrc": "7654:5:40",
"nodeType": "YulIdentifier",
"src": "7654:5:40"
},
{
"arguments": [
{
"name": "max",
"nativeSrc": "7665:3:40",
"nodeType": "YulIdentifier",
"src": "7665:3:40"
},
{
"name": "base",
"nativeSrc": "7670:4:40",
"nodeType": "YulIdentifier",
"src": "7670:4:40"
}
],
"functionName": {
"name": "div",
"nativeSrc": "7661:3:40",
"nodeType": "YulIdentifier",
"src": "7661:3:40"
},
"nativeSrc": "7661:14:40",
"nodeType": "YulFunctionCall",
"src": "7661:14:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7651:2:40",
"nodeType": "YulIdentifier",
"src": "7651:2:40"
},
"nativeSrc": "7651:25:40",
"nodeType": "YulFunctionCall",
"src": "7651:25:40"
},
"nativeSrc": "7648:51:40",
"nodeType": "YulIf",
"src": "7648:51:40"
},
{
"nativeSrc": "7708:25:40",
"nodeType": "YulAssignment",
"src": "7708:25:40",
"value": {
"arguments": [
{
"name": "power",
"nativeSrc": "7721:5:40",
"nodeType": "YulIdentifier",
"src": "7721:5:40"
},
{
"name": "base",
"nativeSrc": "7728:4:40",
"nodeType": "YulIdentifier",
"src": "7728:4:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "7717:3:40",
"nodeType": "YulIdentifier",
"src": "7717:3:40"
},
"nativeSrc": "7717:16:40",
"nodeType": "YulFunctionCall",
"src": "7717:16:40"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "7708:5:40",
"nodeType": "YulIdentifier",
"src": "7708:5:40"
}
]
}
]
},
"name": "checked_exp_unsigned",
"nativeSrc": "6666:1073:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "base",
"nativeSrc": "6696:4:40",
"nodeType": "YulTypedName",
"src": "6696:4:40",
"type": ""
},
{
"name": "exponent",
"nativeSrc": "6702:8:40",
"nodeType": "YulTypedName",
"src": "6702:8:40",
"type": ""
},
{
"name": "max",
"nativeSrc": "6712:3:40",
"nodeType": "YulTypedName",
"src": "6712:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "power",
"nativeSrc": "6720:5:40",
"nodeType": "YulTypedName",
"src": "6720:5:40",
"type": ""
}
],
"src": "6666:1073:40"
},
{
"body": {
"nativeSrc": "7809:217:40",
"nodeType": "YulBlock",
"src": "7809:217:40",
"statements": [
{
"nativeSrc": "7819:31:40",
"nodeType": "YulAssignment",
"src": "7819:31:40",
"value": {
"arguments": [
{
"name": "base",
"nativeSrc": "7845:4:40",
"nodeType": "YulIdentifier",
"src": "7845:4:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7827:17:40",
"nodeType": "YulIdentifier",
"src": "7827:17:40"
},
"nativeSrc": "7827:23:40",
"nodeType": "YulFunctionCall",
"src": "7827:23:40"
},
"variableNames": [
{
"name": "base",
"nativeSrc": "7819:4:40",
"nodeType": "YulIdentifier",
"src": "7819:4:40"
}
]
},
{
"nativeSrc": "7859:37:40",
"nodeType": "YulAssignment",
"src": "7859:37:40",
"value": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "7887:8:40",
"nodeType": "YulIdentifier",
"src": "7887:8:40"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "7871:15:40",
"nodeType": "YulIdentifier",
"src": "7871:15:40"
},
"nativeSrc": "7871:25:40",
"nodeType": "YulFunctionCall",
"src": "7871:25:40"
},
"variableNames": [
{
"name": "exponent",
"nativeSrc": "7859:8:40",
"nodeType": "YulIdentifier",
"src": "7859:8:40"
}
]
},
{
"nativeSrc": "7906:113:40",
"nodeType": "YulAssignment",
"src": "7906:113:40",
"value": {
"arguments": [
{
"name": "base",
"nativeSrc": "7936:4:40",
"nodeType": "YulIdentifier",
"src": "7936:4:40"
},
{
"name": "exponent",
"nativeSrc": "7942:8:40",
"nodeType": "YulIdentifier",
"src": "7942:8:40"
},
{
"kind": "number",
"nativeSrc": "7952:66:40",
"nodeType": "YulLiteral",
"src": "7952:66:40",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "checked_exp_unsigned",
"nativeSrc": "7915:20:40",
"nodeType": "YulIdentifier",
"src": "7915:20:40"
},
"nativeSrc": "7915:104:40",
"nodeType": "YulFunctionCall",
"src": "7915:104:40"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "7906:5:40",
"nodeType": "YulIdentifier",
"src": "7906:5:40"
}
]
}
]
},
"name": "checked_exp_t_uint256_t_uint8",
"nativeSrc": "7745:281:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "base",
"nativeSrc": "7784:4:40",
"nodeType": "YulTypedName",
"src": "7784:4:40",
"type": ""
},
{
"name": "exponent",
"nativeSrc": "7790:8:40",
"nodeType": "YulTypedName",
"src": "7790:8:40",
"type": ""
}
],
"returnVariables": [
{
"name": "power",
"nativeSrc": "7803:5:40",
"nodeType": "YulTypedName",
"src": "7803:5:40",
"type": ""
}
],
"src": "7745:281:40"
},
{
"body": {
"nativeSrc": "8091:40:40",
"nodeType": "YulBlock",
"src": "8091:40:40",
"statements": [
{
"nativeSrc": "8102:22:40",
"nodeType": "YulAssignment",
"src": "8102:22:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "8118:5:40",
"nodeType": "YulIdentifier",
"src": "8118:5:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8112:5:40",
"nodeType": "YulIdentifier",
"src": "8112:5:40"
},
"nativeSrc": "8112:12:40",
"nodeType": "YulFunctionCall",
"src": "8112:12:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "8102:6:40",
"nodeType": "YulIdentifier",
"src": "8102:6:40"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "8032:99:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8074:5:40",
"nodeType": "YulTypedName",
"src": "8074:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "8084:6:40",
"nodeType": "YulTypedName",
"src": "8084:6:40",
"type": ""
}
],
"src": "8032:99:40"
},
{
"body": {
"nativeSrc": "8165:152:40",
"nodeType": "YulBlock",
"src": "8165:152:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8182:1:40",
"nodeType": "YulLiteral",
"src": "8182:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "8185:77:40",
"nodeType": "YulLiteral",
"src": "8185:77:40",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8175:6:40",
"nodeType": "YulIdentifier",
"src": "8175:6:40"
},
"nativeSrc": "8175:88:40",
"nodeType": "YulFunctionCall",
"src": "8175:88:40"
},
"nativeSrc": "8175:88:40",
"nodeType": "YulExpressionStatement",
"src": "8175:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8279:1:40",
"nodeType": "YulLiteral",
"src": "8279:1:40",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "8282:4:40",
"nodeType": "YulLiteral",
"src": "8282:4:40",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8272:6:40",
"nodeType": "YulIdentifier",
"src": "8272:6:40"
},
"nativeSrc": "8272:15:40",
"nodeType": "YulFunctionCall",
"src": "8272:15:40"
},
"nativeSrc": "8272:15:40",
"nodeType": "YulExpressionStatement",
"src": "8272:15:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8303:1:40",
"nodeType": "YulLiteral",
"src": "8303:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "8306:4:40",
"nodeType": "YulLiteral",
"src": "8306:4:40",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "8296:6:40",
"nodeType": "YulIdentifier",
"src": "8296:6:40"
},
"nativeSrc": "8296:15:40",
"nodeType": "YulFunctionCall",
"src": "8296:15:40"
},
"nativeSrc": "8296:15:40",
"nodeType": "YulExpressionStatement",
"src": "8296:15:40"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "8137:180:40",
"nodeType": "YulFunctionDefinition",
"src": "8137:180:40"
},
{
"body": {
"nativeSrc": "8374:269:40",
"nodeType": "YulBlock",
"src": "8374:269:40",
"statements": [
{
"nativeSrc": "8384:22:40",
"nodeType": "YulAssignment",
"src": "8384:22:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "8398:4:40",
"nodeType": "YulIdentifier",
"src": "8398:4:40"
},
{
"kind": "number",
"nativeSrc": "8404:1:40",
"nodeType": "YulLiteral",
"src": "8404:1:40",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "8394:3:40",
"nodeType": "YulIdentifier",
"src": "8394:3:40"
},
"nativeSrc": "8394:12:40",
"nodeType": "YulFunctionCall",
"src": "8394:12:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "8384:6:40",
"nodeType": "YulIdentifier",
"src": "8384:6:40"
}
]
},
{
"nativeSrc": "8415:38:40",
"nodeType": "YulVariableDeclaration",
"src": "8415:38:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "8445:4:40",
"nodeType": "YulIdentifier",
"src": "8445:4:40"
},
{
"kind": "number",
"nativeSrc": "8451:1:40",
"nodeType": "YulLiteral",
"src": "8451:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "8441:3:40",
"nodeType": "YulIdentifier",
"src": "8441:3:40"
},
"nativeSrc": "8441:12:40",
"nodeType": "YulFunctionCall",
"src": "8441:12:40"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "8419:18:40",
"nodeType": "YulTypedName",
"src": "8419:18:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "8492:51:40",
"nodeType": "YulBlock",
"src": "8492:51:40",
"statements": [
{
"nativeSrc": "8506:27:40",
"nodeType": "YulAssignment",
"src": "8506:27:40",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "8520:6:40",
"nodeType": "YulIdentifier",
"src": "8520:6:40"
},
{
"kind": "number",
"nativeSrc": "8528:4:40",
"nodeType": "YulLiteral",
"src": "8528:4:40",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "8516:3:40",
"nodeType": "YulIdentifier",
"src": "8516:3:40"
},
"nativeSrc": "8516:17:40",
"nodeType": "YulFunctionCall",
"src": "8516:17:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "8506:6:40",
"nodeType": "YulIdentifier",
"src": "8506:6:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "8472:18:40",
"nodeType": "YulIdentifier",
"src": "8472:18:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "8465:6:40",
"nodeType": "YulIdentifier",
"src": "8465:6:40"
},
"nativeSrc": "8465:26:40",
"nodeType": "YulFunctionCall",
"src": "8465:26:40"
},
"nativeSrc": "8462:81:40",
"nodeType": "YulIf",
"src": "8462:81:40"
},
{
"body": {
"nativeSrc": "8595:42:40",
"nodeType": "YulBlock",
"src": "8595:42:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "8609:16:40",
"nodeType": "YulIdentifier",
"src": "8609:16:40"
},
"nativeSrc": "8609:18:40",
"nodeType": "YulFunctionCall",
"src": "8609:18:40"
},
"nativeSrc": "8609:18:40",
"nodeType": "YulExpressionStatement",
"src": "8609:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "8559:18:40",
"nodeType": "YulIdentifier",
"src": "8559:18:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "8582:6:40",
"nodeType": "YulIdentifier",
"src": "8582:6:40"
},
{
"kind": "number",
"nativeSrc": "8590:2:40",
"nodeType": "YulLiteral",
"src": "8590:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "8579:2:40",
"nodeType": "YulIdentifier",
"src": "8579:2:40"
},
"nativeSrc": "8579:14:40",
"nodeType": "YulFunctionCall",
"src": "8579:14:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "8556:2:40",
"nodeType": "YulIdentifier",
"src": "8556:2:40"
},
"nativeSrc": "8556:38:40",
"nodeType": "YulFunctionCall",
"src": "8556:38:40"
},
"nativeSrc": "8553:84:40",
"nodeType": "YulIf",
"src": "8553:84:40"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "8323:320:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "8358:4:40",
"nodeType": "YulTypedName",
"src": "8358:4:40",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "8367:6:40",
"nodeType": "YulTypedName",
"src": "8367:6:40",
"type": ""
}
],
"src": "8323:320:40"
},
{
"body": {
"nativeSrc": "8703:87:40",
"nodeType": "YulBlock",
"src": "8703:87:40",
"statements": [
{
"nativeSrc": "8713:11:40",
"nodeType": "YulAssignment",
"src": "8713:11:40",
"value": {
"name": "ptr",
"nativeSrc": "8721:3:40",
"nodeType": "YulIdentifier",
"src": "8721:3:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "8713:4:40",
"nodeType": "YulIdentifier",
"src": "8713:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8741:1:40",
"nodeType": "YulLiteral",
"src": "8741:1:40",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nativeSrc": "8744:3:40",
"nodeType": "YulIdentifier",
"src": "8744:3:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8734:6:40",
"nodeType": "YulIdentifier",
"src": "8734:6:40"
},
"nativeSrc": "8734:14:40",
"nodeType": "YulFunctionCall",
"src": "8734:14:40"
},
"nativeSrc": "8734:14:40",
"nodeType": "YulExpressionStatement",
"src": "8734:14:40"
},
{
"nativeSrc": "8757:26:40",
"nodeType": "YulAssignment",
"src": "8757:26:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8775:1:40",
"nodeType": "YulLiteral",
"src": "8775:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "8778:4:40",
"nodeType": "YulLiteral",
"src": "8778:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nativeSrc": "8765:9:40",
"nodeType": "YulIdentifier",
"src": "8765:9:40"
},
"nativeSrc": "8765:18:40",
"nodeType": "YulFunctionCall",
"src": "8765:18:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "8757:4:40",
"nodeType": "YulIdentifier",
"src": "8757:4:40"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nativeSrc": "8649:141:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "8690:3:40",
"nodeType": "YulTypedName",
"src": "8690:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "8698:4:40",
"nodeType": "YulTypedName",
"src": "8698:4:40",
"type": ""
}
],
"src": "8649:141:40"
},
{
"body": {
"nativeSrc": "8840:49:40",
"nodeType": "YulBlock",
"src": "8840:49:40",
"statements": [
{
"nativeSrc": "8850:33:40",
"nodeType": "YulAssignment",
"src": "8850:33:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "8868:5:40",
"nodeType": "YulIdentifier",
"src": "8868:5:40"
},
{
"kind": "number",
"nativeSrc": "8875:2:40",
"nodeType": "YulLiteral",
"src": "8875:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8864:3:40",
"nodeType": "YulIdentifier",
"src": "8864:3:40"
},
"nativeSrc": "8864:14:40",
"nodeType": "YulFunctionCall",
"src": "8864:14:40"
},
{
"kind": "number",
"nativeSrc": "8880:2:40",
"nodeType": "YulLiteral",
"src": "8880:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nativeSrc": "8860:3:40",
"nodeType": "YulIdentifier",
"src": "8860:3:40"
},
"nativeSrc": "8860:23:40",
"nodeType": "YulFunctionCall",
"src": "8860:23:40"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "8850:6:40",
"nodeType": "YulIdentifier",
"src": "8850:6:40"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nativeSrc": "8796:93:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8823:5:40",
"nodeType": "YulTypedName",
"src": "8823:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "8833:6:40",
"nodeType": "YulTypedName",
"src": "8833:6:40",
"type": ""
}
],
"src": "8796:93:40"
},
{
"body": {
"nativeSrc": "8948:54:40",
"nodeType": "YulBlock",
"src": "8948:54:40",
"statements": [
{
"nativeSrc": "8958:37:40",
"nodeType": "YulAssignment",
"src": "8958:37:40",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "8983:4:40",
"nodeType": "YulIdentifier",
"src": "8983:4:40"
},
{
"name": "value",
"nativeSrc": "8989:5:40",
"nodeType": "YulIdentifier",
"src": "8989:5:40"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "8979:3:40",
"nodeType": "YulIdentifier",
"src": "8979:3:40"
},
"nativeSrc": "8979:16:40",
"nodeType": "YulFunctionCall",
"src": "8979:16:40"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "8958:8:40",
"nodeType": "YulIdentifier",
"src": "8958:8:40"
}
]
}
]
},
"name": "shift_left_dynamic",
"nativeSrc": "8895:107:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "8923:4:40",
"nodeType": "YulTypedName",
"src": "8923:4:40",
"type": ""
},
{
"name": "value",
"nativeSrc": "8929:5:40",
"nodeType": "YulTypedName",
"src": "8929:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "8939:8:40",
"nodeType": "YulTypedName",
"src": "8939:8:40",
"type": ""
}
],
"src": "8895:107:40"
},
{
"body": {
"nativeSrc": "9084:317:40",
"nodeType": "YulBlock",
"src": "9084:317:40",
"statements": [
{
"nativeSrc": "9094:35:40",
"nodeType": "YulVariableDeclaration",
"src": "9094:35:40",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nativeSrc": "9115:10:40",
"nodeType": "YulIdentifier",
"src": "9115:10:40"
},
{
"kind": "number",
"nativeSrc": "9127:1:40",
"nodeType": "YulLiteral",
"src": "9127:1:40",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "9111:3:40",
"nodeType": "YulIdentifier",
"src": "9111:3:40"
},
"nativeSrc": "9111:18:40",
"nodeType": "YulFunctionCall",
"src": "9111:18:40"
},
"variables": [
{
"name": "shiftBits",
"nativeSrc": "9098:9:40",
"nodeType": "YulTypedName",
"src": "9098:9:40",
"type": ""
}
]
},
{
"nativeSrc": "9138:109:40",
"nodeType": "YulVariableDeclaration",
"src": "9138:109:40",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "9169:9:40",
"nodeType": "YulIdentifier",
"src": "9169:9:40"
},
{
"kind": "number",
"nativeSrc": "9180:66:40",
"nodeType": "YulLiteral",
"src": "9180:66:40",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "9150:18:40",
"nodeType": "YulIdentifier",
"src": "9150:18:40"
},
"nativeSrc": "9150:97:40",
"nodeType": "YulFunctionCall",
"src": "9150:97:40"
},
"variables": [
{
"name": "mask",
"nativeSrc": "9142:4:40",
"nodeType": "YulTypedName",
"src": "9142:4:40",
"type": ""
}
]
},
{
"nativeSrc": "9256:51:40",
"nodeType": "YulAssignment",
"src": "9256:51:40",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "9287:9:40",
"nodeType": "YulIdentifier",
"src": "9287:9:40"
},
{
"name": "toInsert",
"nativeSrc": "9298:8:40",
"nodeType": "YulIdentifier",
"src": "9298:8:40"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "9268:18:40",
"nodeType": "YulIdentifier",
"src": "9268:18:40"
},
"nativeSrc": "9268:39:40",
"nodeType": "YulFunctionCall",
"src": "9268:39:40"
},
"variableNames": [
{
"name": "toInsert",
"nativeSrc": "9256:8:40",
"nodeType": "YulIdentifier",
"src": "9256:8:40"
}
]
},
{
"nativeSrc": "9316:30:40",
"nodeType": "YulAssignment",
"src": "9316:30:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "9329:5:40",
"nodeType": "YulIdentifier",
"src": "9329:5:40"
},
{
"arguments": [
{
"name": "mask",
"nativeSrc": "9340:4:40",
"nodeType": "YulIdentifier",
"src": "9340:4:40"
}
],
"functionName": {
"name": "not",
"nativeSrc": "9336:3:40",
"nodeType": "YulIdentifier",
"src": "9336:3:40"
},
"nativeSrc": "9336:9:40",
"nodeType": "YulFunctionCall",
"src": "9336:9:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "9325:3:40",
"nodeType": "YulIdentifier",
"src": "9325:3:40"
},
"nativeSrc": "9325:21:40",
"nodeType": "YulFunctionCall",
"src": "9325:21:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "9316:5:40",
"nodeType": "YulIdentifier",
"src": "9316:5:40"
}
]
},
{
"nativeSrc": "9355:40:40",
"nodeType": "YulAssignment",
"src": "9355:40:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "9368:5:40",
"nodeType": "YulIdentifier",
"src": "9368:5:40"
},
{
"arguments": [
{
"name": "toInsert",
"nativeSrc": "9379:8:40",
"nodeType": "YulIdentifier",
"src": "9379:8:40"
},
{
"name": "mask",
"nativeSrc": "9389:4:40",
"nodeType": "YulIdentifier",
"src": "9389:4:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "9375:3:40",
"nodeType": "YulIdentifier",
"src": "9375:3:40"
},
"nativeSrc": "9375:19:40",
"nodeType": "YulFunctionCall",
"src": "9375:19:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "9365:2:40",
"nodeType": "YulIdentifier",
"src": "9365:2:40"
},
"nativeSrc": "9365:30:40",
"nodeType": "YulFunctionCall",
"src": "9365:30:40"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "9355:6:40",
"nodeType": "YulIdentifier",
"src": "9355:6:40"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nativeSrc": "9008:393:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "9045:5:40",
"nodeType": "YulTypedName",
"src": "9045:5:40",
"type": ""
},
{
"name": "shiftBytes",
"nativeSrc": "9052:10:40",
"nodeType": "YulTypedName",
"src": "9052:10:40",
"type": ""
},
{
"name": "toInsert",
"nativeSrc": "9064:8:40",
"nodeType": "YulTypedName",
"src": "9064:8:40",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "9077:6:40",
"nodeType": "YulTypedName",
"src": "9077:6:40",
"type": ""
}
],
"src": "9008:393:40"
},
{
"body": {
"nativeSrc": "9439:28:40",
"nodeType": "YulBlock",
"src": "9439:28:40",
"statements": [
{
"nativeSrc": "9449:12:40",
"nodeType": "YulAssignment",
"src": "9449:12:40",
"value": {
"name": "value",
"nativeSrc": "9456:5:40",
"nodeType": "YulIdentifier",
"src": "9456:5:40"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "9449:3:40",
"nodeType": "YulIdentifier",
"src": "9449:3:40"
}
]
}
]
},
"name": "identity",
"nativeSrc": "9407:60:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "9425:5:40",
"nodeType": "YulTypedName",
"src": "9425:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "9435:3:40",
"nodeType": "YulTypedName",
"src": "9435:3:40",
"type": ""
}
],
"src": "9407:60:40"
},
{
"body": {
"nativeSrc": "9533:82:40",
"nodeType": "YulBlock",
"src": "9533:82:40",
"statements": [
{
"nativeSrc": "9543:66:40",
"nodeType": "YulAssignment",
"src": "9543:66:40",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "9601:5:40",
"nodeType": "YulIdentifier",
"src": "9601:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "9583:17:40",
"nodeType": "YulIdentifier",
"src": "9583:17:40"
},
"nativeSrc": "9583:24:40",
"nodeType": "YulFunctionCall",
"src": "9583:24:40"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "9574:8:40",
"nodeType": "YulIdentifier",
"src": "9574:8:40"
},
"nativeSrc": "9574:34:40",
"nodeType": "YulFunctionCall",
"src": "9574:34:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "9556:17:40",
"nodeType": "YulIdentifier",
"src": "9556:17:40"
},
"nativeSrc": "9556:53:40",
"nodeType": "YulFunctionCall",
"src": "9556:53:40"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "9543:9:40",
"nodeType": "YulIdentifier",
"src": "9543:9:40"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "9473:142:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "9513:5:40",
"nodeType": "YulTypedName",
"src": "9513:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "9523:9:40",
"nodeType": "YulTypedName",
"src": "9523:9:40",
"type": ""
}
],
"src": "9473:142:40"
},
{
"body": {
"nativeSrc": "9668:28:40",
"nodeType": "YulBlock",
"src": "9668:28:40",
"statements": [
{
"nativeSrc": "9678:12:40",
"nodeType": "YulAssignment",
"src": "9678:12:40",
"value": {
"name": "value",
"nativeSrc": "9685:5:40",
"nodeType": "YulIdentifier",
"src": "9685:5:40"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "9678:3:40",
"nodeType": "YulIdentifier",
"src": "9678:3:40"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nativeSrc": "9621:75:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "9654:5:40",
"nodeType": "YulTypedName",
"src": "9654:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "9664:3:40",
"nodeType": "YulTypedName",
"src": "9664:3:40",
"type": ""
}
],
"src": "9621:75:40"
},
{
"body": {
"nativeSrc": "9778:193:40",
"nodeType": "YulBlock",
"src": "9778:193:40",
"statements": [
{
"nativeSrc": "9788:63:40",
"nodeType": "YulVariableDeclaration",
"src": "9788:63:40",
"value": {
"arguments": [
{
"name": "value_0",
"nativeSrc": "9843:7:40",
"nodeType": "YulIdentifier",
"src": "9843:7:40"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "9812:30:40",
"nodeType": "YulIdentifier",
"src": "9812:30:40"
},
"nativeSrc": "9812:39:40",
"nodeType": "YulFunctionCall",
"src": "9812:39:40"
},
"variables": [
{
"name": "convertedValue_0",
"nativeSrc": "9792:16:40",
"nodeType": "YulTypedName",
"src": "9792:16:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "9867:4:40",
"nodeType": "YulIdentifier",
"src": "9867:4:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "9907:4:40",
"nodeType": "YulIdentifier",
"src": "9907:4:40"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "9901:5:40",
"nodeType": "YulIdentifier",
"src": "9901:5:40"
},
"nativeSrc": "9901:11:40",
"nodeType": "YulFunctionCall",
"src": "9901:11:40"
},
{
"name": "offset",
"nativeSrc": "9914:6:40",
"nodeType": "YulIdentifier",
"src": "9914:6:40"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nativeSrc": "9946:16:40",
"nodeType": "YulIdentifier",
"src": "9946:16:40"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nativeSrc": "9922:23:40",
"nodeType": "YulIdentifier",
"src": "9922:23:40"
},
"nativeSrc": "9922:41:40",
"nodeType": "YulFunctionCall",
"src": "9922:41:40"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nativeSrc": "9873:27:40",
"nodeType": "YulIdentifier",
"src": "9873:27:40"
},
"nativeSrc": "9873:91:40",
"nodeType": "YulFunctionCall",
"src": "9873:91:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "9860:6:40",
"nodeType": "YulIdentifier",
"src": "9860:6:40"
},
"nativeSrc": "9860:105:40",
"nodeType": "YulFunctionCall",
"src": "9860:105:40"
},
"nativeSrc": "9860:105:40",
"nodeType": "YulExpressionStatement",
"src": "9860:105:40"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "9702:269:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "9755:4:40",
"nodeType": "YulTypedName",
"src": "9755:4:40",
"type": ""
},
{
"name": "offset",
"nativeSrc": "9761:6:40",
"nodeType": "YulTypedName",
"src": "9761:6:40",
"type": ""
},
{
"name": "value_0",
"nativeSrc": "9769:7:40",
"nodeType": "YulTypedName",
"src": "9769:7:40",
"type": ""
}
],
"src": "9702:269:40"
},
{
"body": {
"nativeSrc": "10026:24:40",
"nodeType": "YulBlock",
"src": "10026:24:40",
"statements": [
{
"nativeSrc": "10036:8:40",
"nodeType": "YulAssignment",
"src": "10036:8:40",
"value": {
"kind": "number",
"nativeSrc": "10043:1:40",
"nodeType": "YulLiteral",
"src": "10043:1:40",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "10036:3:40",
"nodeType": "YulIdentifier",
"src": "10036:3:40"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "9977:73:40",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nativeSrc": "10022:3:40",
"nodeType": "YulTypedName",
"src": "10022:3:40",
"type": ""
}
],
"src": "9977:73:40"
},
{
"body": {
"nativeSrc": "10109:136:40",
"nodeType": "YulBlock",
"src": "10109:136:40",
"statements": [
{
"nativeSrc": "10119:46:40",
"nodeType": "YulVariableDeclaration",
"src": "10119:46:40",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "10133:30:40",
"nodeType": "YulIdentifier",
"src": "10133:30:40"
},
"nativeSrc": "10133:32:40",
"nodeType": "YulFunctionCall",
"src": "10133:32:40"
},
"variables": [
{
"name": "zero_0",
"nativeSrc": "10123:6:40",
"nodeType": "YulTypedName",
"src": "10123:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "10218:4:40",
"nodeType": "YulIdentifier",
"src": "10218:4:40"
},
{
"name": "offset",
"nativeSrc": "10224:6:40",
"nodeType": "YulIdentifier",
"src": "10224:6:40"
},
{
"name": "zero_0",
"nativeSrc": "10232:6:40",
"nodeType": "YulIdentifier",
"src": "10232:6:40"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "10174:43:40",
"nodeType": "YulIdentifier",
"src": "10174:43:40"
},
"nativeSrc": "10174:65:40",
"nodeType": "YulFunctionCall",
"src": "10174:65:40"
},
"nativeSrc": "10174:65:40",
"nodeType": "YulExpressionStatement",
"src": "10174:65:40"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "10056:189:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "10095:4:40",
"nodeType": "YulTypedName",
"src": "10095:4:40",
"type": ""
},
{
"name": "offset",
"nativeSrc": "10101:6:40",
"nodeType": "YulTypedName",
"src": "10101:6:40",
"type": ""
}
],
"src": "10056:189:40"
},
{
"body": {
"nativeSrc": "10301:136:40",
"nodeType": "YulBlock",
"src": "10301:136:40",
"statements": [
{
"body": {
"nativeSrc": "10368:63:40",
"nodeType": "YulBlock",
"src": "10368:63:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "10412:5:40",
"nodeType": "YulIdentifier",
"src": "10412:5:40"
},
{
"kind": "number",
"nativeSrc": "10419:1:40",
"nodeType": "YulLiteral",
"src": "10419:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "10382:29:40",
"nodeType": "YulIdentifier",
"src": "10382:29:40"
},
"nativeSrc": "10382:39:40",
"nodeType": "YulFunctionCall",
"src": "10382:39:40"
},
"nativeSrc": "10382:39:40",
"nodeType": "YulExpressionStatement",
"src": "10382:39:40"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nativeSrc": "10321:5:40",
"nodeType": "YulIdentifier",
"src": "10321:5:40"
},
{
"name": "end",
"nativeSrc": "10328:3:40",
"nodeType": "YulIdentifier",
"src": "10328:3:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "10318:2:40",
"nodeType": "YulIdentifier",
"src": "10318:2:40"
},
"nativeSrc": "10318:14:40",
"nodeType": "YulFunctionCall",
"src": "10318:14:40"
},
"nativeSrc": "10311:120:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "10333:26:40",
"nodeType": "YulBlock",
"src": "10333:26:40",
"statements": [
{
"nativeSrc": "10335:22:40",
"nodeType": "YulAssignment",
"src": "10335:22:40",
"value": {
"arguments": [
{
"name": "start",
"nativeSrc": "10348:5:40",
"nodeType": "YulIdentifier",
"src": "10348:5:40"
},
{
"kind": "number",
"nativeSrc": "10355:1:40",
"nodeType": "YulLiteral",
"src": "10355:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10344:3:40",
"nodeType": "YulIdentifier",
"src": "10344:3:40"
},
"nativeSrc": "10344:13:40",
"nodeType": "YulFunctionCall",
"src": "10344:13:40"
},
"variableNames": [
{
"name": "start",
"nativeSrc": "10335:5:40",
"nodeType": "YulIdentifier",
"src": "10335:5:40"
}
]
}
]
},
"pre": {
"nativeSrc": "10315:2:40",
"nodeType": "YulBlock",
"src": "10315:2:40",
"statements": []
},
"src": "10311:120:40"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "10251:186:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "10289:5:40",
"nodeType": "YulTypedName",
"src": "10289:5:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "10296:3:40",
"nodeType": "YulTypedName",
"src": "10296:3:40",
"type": ""
}
],
"src": "10251:186:40"
},
{
"body": {
"nativeSrc": "10522:464:40",
"nodeType": "YulBlock",
"src": "10522:464:40",
"statements": [
{
"body": {
"nativeSrc": "10548:431:40",
"nodeType": "YulBlock",
"src": "10548:431:40",
"statements": [
{
"nativeSrc": "10562:54:40",
"nodeType": "YulVariableDeclaration",
"src": "10562:54:40",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "10610:5:40",
"nodeType": "YulIdentifier",
"src": "10610:5:40"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "10578:31:40",
"nodeType": "YulIdentifier",
"src": "10578:31:40"
},
"nativeSrc": "10578:38:40",
"nodeType": "YulFunctionCall",
"src": "10578:38:40"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "10566:8:40",
"nodeType": "YulTypedName",
"src": "10566:8:40",
"type": ""
}
]
},
{
"nativeSrc": "10629:63:40",
"nodeType": "YulVariableDeclaration",
"src": "10629:63:40",
"value": {
"arguments": [
{
"name": "dataArea",
"nativeSrc": "10652:8:40",
"nodeType": "YulIdentifier",
"src": "10652:8:40"
},
{
"arguments": [
{
"name": "startIndex",
"nativeSrc": "10680:10:40",
"nodeType": "YulIdentifier",
"src": "10680:10:40"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "10662:17:40",
"nodeType": "YulIdentifier",
"src": "10662:17:40"
},
"nativeSrc": "10662:29:40",
"nodeType": "YulFunctionCall",
"src": "10662:29:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10648:3:40",
"nodeType": "YulIdentifier",
"src": "10648:3:40"
},
"nativeSrc": "10648:44:40",
"nodeType": "YulFunctionCall",
"src": "10648:44:40"
},
"variables": [
{
"name": "deleteStart",
"nativeSrc": "10633:11:40",
"nodeType": "YulTypedName",
"src": "10633:11:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "10849:27:40",
"nodeType": "YulBlock",
"src": "10849:27:40",
"statements": [
{
"nativeSrc": "10851:23:40",
"nodeType": "YulAssignment",
"src": "10851:23:40",
"value": {
"name": "dataArea",
"nativeSrc": "10866:8:40",
"nodeType": "YulIdentifier",
"src": "10866:8:40"
},
"variableNames": [
{
"name": "deleteStart",
"nativeSrc": "10851:11:40",
"nodeType": "YulIdentifier",
"src": "10851:11:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nativeSrc": "10833:10:40",
"nodeType": "YulIdentifier",
"src": "10833:10:40"
},
{
"kind": "number",
"nativeSrc": "10845:2:40",
"nodeType": "YulLiteral",
"src": "10845:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "10830:2:40",
"nodeType": "YulIdentifier",
"src": "10830:2:40"
},
"nativeSrc": "10830:18:40",
"nodeType": "YulFunctionCall",
"src": "10830:18:40"
},
"nativeSrc": "10827:49:40",
"nodeType": "YulIf",
"src": "10827:49:40"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nativeSrc": "10918:11:40",
"nodeType": "YulIdentifier",
"src": "10918:11:40"
},
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "10935:8:40",
"nodeType": "YulIdentifier",
"src": "10935:8:40"
},
{
"arguments": [
{
"name": "len",
"nativeSrc": "10963:3:40",
"nodeType": "YulIdentifier",
"src": "10963:3:40"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "10945:17:40",
"nodeType": "YulIdentifier",
"src": "10945:17:40"
},
"nativeSrc": "10945:22:40",
"nodeType": "YulFunctionCall",
"src": "10945:22:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10931:3:40",
"nodeType": "YulIdentifier",
"src": "10931:3:40"
},
"nativeSrc": "10931:37:40",
"nodeType": "YulFunctionCall",
"src": "10931:37:40"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "10889:28:40",
"nodeType": "YulIdentifier",
"src": "10889:28:40"
},
"nativeSrc": "10889:80:40",
"nodeType": "YulFunctionCall",
"src": "10889:80:40"
},
"nativeSrc": "10889:80:40",
"nodeType": "YulExpressionStatement",
"src": "10889:80:40"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nativeSrc": "10539:3:40",
"nodeType": "YulIdentifier",
"src": "10539:3:40"
},
{
"kind": "number",
"nativeSrc": "10544:2:40",
"nodeType": "YulLiteral",
"src": "10544:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "10536:2:40",
"nodeType": "YulIdentifier",
"src": "10536:2:40"
},
"nativeSrc": "10536:11:40",
"nodeType": "YulFunctionCall",
"src": "10536:11:40"
},
"nativeSrc": "10533:446:40",
"nodeType": "YulIf",
"src": "10533:446:40"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "10443:543:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "10498:5:40",
"nodeType": "YulTypedName",
"src": "10498:5:40",
"type": ""
},
{
"name": "len",
"nativeSrc": "10505:3:40",
"nodeType": "YulTypedName",
"src": "10505:3:40",
"type": ""
},
{
"name": "startIndex",
"nativeSrc": "10510:10:40",
"nodeType": "YulTypedName",
"src": "10510:10:40",
"type": ""
}
],
"src": "10443:543:40"
},
{
"body": {
"nativeSrc": "11055:54:40",
"nodeType": "YulBlock",
"src": "11055:54:40",
"statements": [
{
"nativeSrc": "11065:37:40",
"nodeType": "YulAssignment",
"src": "11065:37:40",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "11090:4:40",
"nodeType": "YulIdentifier",
"src": "11090:4:40"
},
{
"name": "value",
"nativeSrc": "11096:5:40",
"nodeType": "YulIdentifier",
"src": "11096:5:40"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "11086:3:40",
"nodeType": "YulIdentifier",
"src": "11086:3:40"
},
"nativeSrc": "11086:16:40",
"nodeType": "YulFunctionCall",
"src": "11086:16:40"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "11065:8:40",
"nodeType": "YulIdentifier",
"src": "11065:8:40"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "10992:117:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "11030:4:40",
"nodeType": "YulTypedName",
"src": "11030:4:40",
"type": ""
},
{
"name": "value",
"nativeSrc": "11036:5:40",
"nodeType": "YulTypedName",
"src": "11036:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "11046:8:40",
"nodeType": "YulTypedName",
"src": "11046:8:40",
"type": ""
}
],
"src": "10992:117:40"
},
{
"body": {
"nativeSrc": "11166:118:40",
"nodeType": "YulBlock",
"src": "11166:118:40",
"statements": [
{
"nativeSrc": "11176:68:40",
"nodeType": "YulVariableDeclaration",
"src": "11176:68:40",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "11225:1:40",
"nodeType": "YulLiteral",
"src": "11225:1:40",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nativeSrc": "11228:5:40",
"nodeType": "YulIdentifier",
"src": "11228:5:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "11221:3:40",
"nodeType": "YulIdentifier",
"src": "11221:3:40"
},
"nativeSrc": "11221:13:40",
"nodeType": "YulFunctionCall",
"src": "11221:13:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "11240:1:40",
"nodeType": "YulLiteral",
"src": "11240:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nativeSrc": "11236:3:40",
"nodeType": "YulIdentifier",
"src": "11236:3:40"
},
"nativeSrc": "11236:6:40",
"nodeType": "YulFunctionCall",
"src": "11236:6:40"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "11192:28:40",
"nodeType": "YulIdentifier",
"src": "11192:28:40"
},
"nativeSrc": "11192:51:40",
"nodeType": "YulFunctionCall",
"src": "11192:51:40"
}
],
"functionName": {
"name": "not",
"nativeSrc": "11188:3:40",
"nodeType": "YulIdentifier",
"src": "11188:3:40"
},
"nativeSrc": "11188:56:40",
"nodeType": "YulFunctionCall",
"src": "11188:56:40"
},
"variables": [
{
"name": "mask",
"nativeSrc": "11180:4:40",
"nodeType": "YulTypedName",
"src": "11180:4:40",
"type": ""
}
]
},
{
"nativeSrc": "11253:25:40",
"nodeType": "YulAssignment",
"src": "11253:25:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "11267:4:40",
"nodeType": "YulIdentifier",
"src": "11267:4:40"
},
{
"name": "mask",
"nativeSrc": "11273:4:40",
"nodeType": "YulIdentifier",
"src": "11273:4:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "11263:3:40",
"nodeType": "YulIdentifier",
"src": "11263:3:40"
},
"nativeSrc": "11263:15:40",
"nodeType": "YulFunctionCall",
"src": "11263:15:40"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "11253:6:40",
"nodeType": "YulIdentifier",
"src": "11253:6:40"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nativeSrc": "11115:169:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "11143:4:40",
"nodeType": "YulTypedName",
"src": "11143:4:40",
"type": ""
},
{
"name": "bytes",
"nativeSrc": "11149:5:40",
"nodeType": "YulTypedName",
"src": "11149:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "11159:6:40",
"nodeType": "YulTypedName",
"src": "11159:6:40",
"type": ""
}
],
"src": "11115:169:40"
},
{
"body": {
"nativeSrc": "11370:214:40",
"nodeType": "YulBlock",
"src": "11370:214:40",
"statements": [
{
"nativeSrc": "11503:37:40",
"nodeType": "YulAssignment",
"src": "11503:37:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "11530:4:40",
"nodeType": "YulIdentifier",
"src": "11530:4:40"
},
{
"name": "len",
"nativeSrc": "11536:3:40",
"nodeType": "YulIdentifier",
"src": "11536:3:40"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "11511:18:40",
"nodeType": "YulIdentifier",
"src": "11511:18:40"
},
"nativeSrc": "11511:29:40",
"nodeType": "YulFunctionCall",
"src": "11511:29:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "11503:4:40",
"nodeType": "YulIdentifier",
"src": "11503:4:40"
}
]
},
{
"nativeSrc": "11549:29:40",
"nodeType": "YulAssignment",
"src": "11549:29:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "11560:4:40",
"nodeType": "YulIdentifier",
"src": "11560:4:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "11570:1:40",
"nodeType": "YulLiteral",
"src": "11570:1:40",
"type": "",
"value": "2"
},
{
"name": "len",
"nativeSrc": "11573:3:40",
"nodeType": "YulIdentifier",
"src": "11573:3:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "11566:3:40",
"nodeType": "YulIdentifier",
"src": "11566:3:40"
},
"nativeSrc": "11566:11:40",
"nodeType": "YulFunctionCall",
"src": "11566:11:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "11557:2:40",
"nodeType": "YulIdentifier",
"src": "11557:2:40"
},
"nativeSrc": "11557:21:40",
"nodeType": "YulFunctionCall",
"src": "11557:21:40"
},
"variableNames": [
{
"name": "used",
"nativeSrc": "11549:4:40",
"nodeType": "YulIdentifier",
"src": "11549:4:40"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "11289:295:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "11351:4:40",
"nodeType": "YulTypedName",
"src": "11351:4:40",
"type": ""
},
{
"name": "len",
"nativeSrc": "11357:3:40",
"nodeType": "YulTypedName",
"src": "11357:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nativeSrc": "11365:4:40",
"nodeType": "YulTypedName",
"src": "11365:4:40",
"type": ""
}
],
"src": "11289:295:40"
},
{
"body": {
"nativeSrc": "11681:1303:40",
"nodeType": "YulBlock",
"src": "11681:1303:40",
"statements": [
{
"nativeSrc": "11692:51:40",
"nodeType": "YulVariableDeclaration",
"src": "11692:51:40",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "11739:3:40",
"nodeType": "YulIdentifier",
"src": "11739:3:40"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "11706:32:40",
"nodeType": "YulIdentifier",
"src": "11706:32:40"
},
"nativeSrc": "11706:37:40",
"nodeType": "YulFunctionCall",
"src": "11706:37:40"
},
"variables": [
{
"name": "newLen",
"nativeSrc": "11696:6:40",
"nodeType": "YulTypedName",
"src": "11696:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "11828:22:40",
"nodeType": "YulBlock",
"src": "11828:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "11830:16:40",
"nodeType": "YulIdentifier",
"src": "11830:16:40"
},
"nativeSrc": "11830:18:40",
"nodeType": "YulFunctionCall",
"src": "11830:18:40"
},
"nativeSrc": "11830:18:40",
"nodeType": "YulExpressionStatement",
"src": "11830:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "11800:6:40",
"nodeType": "YulIdentifier",
"src": "11800:6:40"
},
{
"kind": "number",
"nativeSrc": "11808:18:40",
"nodeType": "YulLiteral",
"src": "11808:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "11797:2:40",
"nodeType": "YulIdentifier",
"src": "11797:2:40"
},
"nativeSrc": "11797:30:40",
"nodeType": "YulFunctionCall",
"src": "11797:30:40"
},
"nativeSrc": "11794:56:40",
"nodeType": "YulIf",
"src": "11794:56:40"
},
{
"nativeSrc": "11860:52:40",
"nodeType": "YulVariableDeclaration",
"src": "11860:52:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "11906:4:40",
"nodeType": "YulIdentifier",
"src": "11906:4:40"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "11900:5:40",
"nodeType": "YulIdentifier",
"src": "11900:5:40"
},
"nativeSrc": "11900:11:40",
"nodeType": "YulFunctionCall",
"src": "11900:11:40"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nativeSrc": "11874:25:40",
"nodeType": "YulIdentifier",
"src": "11874:25:40"
},
"nativeSrc": "11874:38:40",
"nodeType": "YulFunctionCall",
"src": "11874:38:40"
},
"variables": [
{
"name": "oldLen",
"nativeSrc": "11864:6:40",
"nodeType": "YulTypedName",
"src": "11864:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "12005:4:40",
"nodeType": "YulIdentifier",
"src": "12005:4:40"
},
{
"name": "oldLen",
"nativeSrc": "12011:6:40",
"nodeType": "YulIdentifier",
"src": "12011:6:40"
},
{
"name": "newLen",
"nativeSrc": "12019:6:40",
"nodeType": "YulIdentifier",
"src": "12019:6:40"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "11959:45:40",
"nodeType": "YulIdentifier",
"src": "11959:45:40"
},
"nativeSrc": "11959:67:40",
"nodeType": "YulFunctionCall",
"src": "11959:67:40"
},
"nativeSrc": "11959:67:40",
"nodeType": "YulExpressionStatement",
"src": "11959:67:40"
},
{
"nativeSrc": "12036:18:40",
"nodeType": "YulVariableDeclaration",
"src": "12036:18:40",
"value": {
"kind": "number",
"nativeSrc": "12053:1:40",
"nodeType": "YulLiteral",
"src": "12053:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nativeSrc": "12040:9:40",
"nodeType": "YulTypedName",
"src": "12040:9:40",
"type": ""
}
]
},
{
"nativeSrc": "12064:17:40",
"nodeType": "YulAssignment",
"src": "12064:17:40",
"value": {
"kind": "number",
"nativeSrc": "12077:4:40",
"nodeType": "YulLiteral",
"src": "12077:4:40",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "12064:9:40",
"nodeType": "YulIdentifier",
"src": "12064:9:40"
}
]
},
{
"cases": [
{
"body": {
"nativeSrc": "12128:611:40",
"nodeType": "YulBlock",
"src": "12128:611:40",
"statements": [
{
"nativeSrc": "12142:37:40",
"nodeType": "YulVariableDeclaration",
"src": "12142:37:40",
"value": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "12161:6:40",
"nodeType": "YulIdentifier",
"src": "12161:6:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "12173:4:40",
"nodeType": "YulLiteral",
"src": "12173:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nativeSrc": "12169:3:40",
"nodeType": "YulIdentifier",
"src": "12169:3:40"
},
"nativeSrc": "12169:9:40",
"nodeType": "YulFunctionCall",
"src": "12169:9:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "12157:3:40",
"nodeType": "YulIdentifier",
"src": "12157:3:40"
},
"nativeSrc": "12157:22:40",
"nodeType": "YulFunctionCall",
"src": "12157:22:40"
},
"variables": [
{
"name": "loopEnd",
"nativeSrc": "12146:7:40",
"nodeType": "YulTypedName",
"src": "12146:7:40",
"type": ""
}
]
},
{
"nativeSrc": "12193:51:40",
"nodeType": "YulVariableDeclaration",
"src": "12193:51:40",
"value": {
"arguments": [
{
"name": "slot",
"nativeSrc": "12239:4:40",
"nodeType": "YulIdentifier",
"src": "12239:4:40"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "12207:31:40",
"nodeType": "YulIdentifier",
"src": "12207:31:40"
},
"nativeSrc": "12207:37:40",
"nodeType": "YulFunctionCall",
"src": "12207:37:40"
},
"variables": [
{
"name": "dstPtr",
"nativeSrc": "12197:6:40",
"nodeType": "YulTypedName",
"src": "12197:6:40",
"type": ""
}
]
},
{
"nativeSrc": "12257:10:40",
"nodeType": "YulVariableDeclaration",
"src": "12257:10:40",
"value": {
"kind": "number",
"nativeSrc": "12266:1:40",
"nodeType": "YulLiteral",
"src": "12266:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "12261:1:40",
"nodeType": "YulTypedName",
"src": "12261:1:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "12325:163:40",
"nodeType": "YulBlock",
"src": "12325:163:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "12350:6:40",
"nodeType": "YulIdentifier",
"src": "12350:6:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "12368:3:40",
"nodeType": "YulIdentifier",
"src": "12368:3:40"
},
{
"name": "srcOffset",
"nativeSrc": "12373:9:40",
"nodeType": "YulIdentifier",
"src": "12373:9:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12364:3:40",
"nodeType": "YulIdentifier",
"src": "12364:3:40"
},
"nativeSrc": "12364:19:40",
"nodeType": "YulFunctionCall",
"src": "12364:19:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "12358:5:40",
"nodeType": "YulIdentifier",
"src": "12358:5:40"
},
"nativeSrc": "12358:26:40",
"nodeType": "YulFunctionCall",
"src": "12358:26:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "12343:6:40",
"nodeType": "YulIdentifier",
"src": "12343:6:40"
},
"nativeSrc": "12343:42:40",
"nodeType": "YulFunctionCall",
"src": "12343:42:40"
},
"nativeSrc": "12343:42:40",
"nodeType": "YulExpressionStatement",
"src": "12343:42:40"
},
{
"nativeSrc": "12402:24:40",
"nodeType": "YulAssignment",
"src": "12402:24:40",
"value": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "12416:6:40",
"nodeType": "YulIdentifier",
"src": "12416:6:40"
},
{
"kind": "number",
"nativeSrc": "12424:1:40",
"nodeType": "YulLiteral",
"src": "12424:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12412:3:40",
"nodeType": "YulIdentifier",
"src": "12412:3:40"
},
"nativeSrc": "12412:14:40",
"nodeType": "YulFunctionCall",
"src": "12412:14:40"
},
"variableNames": [
{
"name": "dstPtr",
"nativeSrc": "12402:6:40",
"nodeType": "YulIdentifier",
"src": "12402:6:40"
}
]
},
{
"nativeSrc": "12443:31:40",
"nodeType": "YulAssignment",
"src": "12443:31:40",
"value": {
"arguments": [
{
"name": "srcOffset",
"nativeSrc": "12460:9:40",
"nodeType": "YulIdentifier",
"src": "12460:9:40"
},
{
"kind": "number",
"nativeSrc": "12471:2:40",
"nodeType": "YulLiteral",
"src": "12471:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12456:3:40",
"nodeType": "YulIdentifier",
"src": "12456:3:40"
},
"nativeSrc": "12456:18:40",
"nodeType": "YulFunctionCall",
"src": "12456:18:40"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "12443:9:40",
"nodeType": "YulIdentifier",
"src": "12443:9:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "12291:1:40",
"nodeType": "YulIdentifier",
"src": "12291:1:40"
},
{
"name": "loopEnd",
"nativeSrc": "12294:7:40",
"nodeType": "YulIdentifier",
"src": "12294:7:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "12288:2:40",
"nodeType": "YulIdentifier",
"src": "12288:2:40"
},
"nativeSrc": "12288:14:40",
"nodeType": "YulFunctionCall",
"src": "12288:14:40"
},
"nativeSrc": "12280:208:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "12303:21:40",
"nodeType": "YulBlock",
"src": "12303:21:40",
"statements": [
{
"nativeSrc": "12305:17:40",
"nodeType": "YulAssignment",
"src": "12305:17:40",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "12314:1:40",
"nodeType": "YulIdentifier",
"src": "12314:1:40"
},
{
"kind": "number",
"nativeSrc": "12317:4:40",
"nodeType": "YulLiteral",
"src": "12317:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12310:3:40",
"nodeType": "YulIdentifier",
"src": "12310:3:40"
},
"nativeSrc": "12310:12:40",
"nodeType": "YulFunctionCall",
"src": "12310:12:40"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "12305:1:40",
"nodeType": "YulIdentifier",
"src": "12305:1:40"
}
]
}
]
},
"pre": {
"nativeSrc": "12284:3:40",
"nodeType": "YulBlock",
"src": "12284:3:40",
"statements": []
},
"src": "12280:208:40"
},
{
"body": {
"nativeSrc": "12524:156:40",
"nodeType": "YulBlock",
"src": "12524:156:40",
"statements": [
{
"nativeSrc": "12542:43:40",
"nodeType": "YulVariableDeclaration",
"src": "12542:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "12569:3:40",
"nodeType": "YulIdentifier",
"src": "12569:3:40"
},
{
"name": "srcOffset",
"nativeSrc": "12574:9:40",
"nodeType": "YulIdentifier",
"src": "12574:9:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12565:3:40",
"nodeType": "YulIdentifier",
"src": "12565:3:40"
},
"nativeSrc": "12565:19:40",
"nodeType": "YulFunctionCall",
"src": "12565:19:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "12559:5:40",
"nodeType": "YulIdentifier",
"src": "12559:5:40"
},
"nativeSrc": "12559:26:40",
"nodeType": "YulFunctionCall",
"src": "12559:26:40"
},
"variables": [
{
"name": "lastValue",
"nativeSrc": "12546:9:40",
"nodeType": "YulTypedName",
"src": "12546:9:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "12609:6:40",
"nodeType": "YulIdentifier",
"src": "12609:6:40"
},
{
"arguments": [
{
"name": "lastValue",
"nativeSrc": "12636:9:40",
"nodeType": "YulIdentifier",
"src": "12636:9:40"
},
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "12651:6:40",
"nodeType": "YulIdentifier",
"src": "12651:6:40"
},
{
"kind": "number",
"nativeSrc": "12659:4:40",
"nodeType": "YulLiteral",
"src": "12659:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "12647:3:40",
"nodeType": "YulIdentifier",
"src": "12647:3:40"
},
"nativeSrc": "12647:17:40",
"nodeType": "YulFunctionCall",
"src": "12647:17:40"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "12617:18:40",
"nodeType": "YulIdentifier",
"src": "12617:18:40"
},
"nativeSrc": "12617:48:40",
"nodeType": "YulFunctionCall",
"src": "12617:48:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "12602:6:40",
"nodeType": "YulIdentifier",
"src": "12602:6:40"
},
"nativeSrc": "12602:64:40",
"nodeType": "YulFunctionCall",
"src": "12602:64:40"
},
"nativeSrc": "12602:64:40",
"nodeType": "YulExpressionStatement",
"src": "12602:64:40"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nativeSrc": "12507:7:40",
"nodeType": "YulIdentifier",
"src": "12507:7:40"
},
{
"name": "newLen",
"nativeSrc": "12516:6:40",
"nodeType": "YulIdentifier",
"src": "12516:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "12504:2:40",
"nodeType": "YulIdentifier",
"src": "12504:2:40"
},
"nativeSrc": "12504:19:40",
"nodeType": "YulFunctionCall",
"src": "12504:19:40"
},
"nativeSrc": "12501:179:40",
"nodeType": "YulIf",
"src": "12501:179:40"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "12700:4:40",
"nodeType": "YulIdentifier",
"src": "12700:4:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "12714:6:40",
"nodeType": "YulIdentifier",
"src": "12714:6:40"
},
{
"kind": "number",
"nativeSrc": "12722:1:40",
"nodeType": "YulLiteral",
"src": "12722:1:40",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "12710:3:40",
"nodeType": "YulIdentifier",
"src": "12710:3:40"
},
"nativeSrc": "12710:14:40",
"nodeType": "YulFunctionCall",
"src": "12710:14:40"
},
{
"kind": "number",
"nativeSrc": "12726:1:40",
"nodeType": "YulLiteral",
"src": "12726:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12706:3:40",
"nodeType": "YulIdentifier",
"src": "12706:3:40"
},
"nativeSrc": "12706:22:40",
"nodeType": "YulFunctionCall",
"src": "12706:22:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "12693:6:40",
"nodeType": "YulIdentifier",
"src": "12693:6:40"
},
"nativeSrc": "12693:36:40",
"nodeType": "YulFunctionCall",
"src": "12693:36:40"
},
"nativeSrc": "12693:36:40",
"nodeType": "YulExpressionStatement",
"src": "12693:36:40"
}
]
},
"nativeSrc": "12121:618:40",
"nodeType": "YulCase",
"src": "12121:618:40",
"value": {
"kind": "number",
"nativeSrc": "12126:1:40",
"nodeType": "YulLiteral",
"src": "12126:1:40",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "12756:222:40",
"nodeType": "YulBlock",
"src": "12756:222:40",
"statements": [
{
"nativeSrc": "12770:14:40",
"nodeType": "YulVariableDeclaration",
"src": "12770:14:40",
"value": {
"kind": "number",
"nativeSrc": "12783:1:40",
"nodeType": "YulLiteral",
"src": "12783:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nativeSrc": "12774:5:40",
"nodeType": "YulTypedName",
"src": "12774:5:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "12807:67:40",
"nodeType": "YulBlock",
"src": "12807:67:40",
"statements": [
{
"nativeSrc": "12825:35:40",
"nodeType": "YulAssignment",
"src": "12825:35:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "12844:3:40",
"nodeType": "YulIdentifier",
"src": "12844:3:40"
},
{
"name": "srcOffset",
"nativeSrc": "12849:9:40",
"nodeType": "YulIdentifier",
"src": "12849:9:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12840:3:40",
"nodeType": "YulIdentifier",
"src": "12840:3:40"
},
"nativeSrc": "12840:19:40",
"nodeType": "YulFunctionCall",
"src": "12840:19:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "12834:5:40",
"nodeType": "YulIdentifier",
"src": "12834:5:40"
},
"nativeSrc": "12834:26:40",
"nodeType": "YulFunctionCall",
"src": "12834:26:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "12825:5:40",
"nodeType": "YulIdentifier",
"src": "12825:5:40"
}
]
}
]
},
"condition": {
"name": "newLen",
"nativeSrc": "12800:6:40",
"nodeType": "YulIdentifier",
"src": "12800:6:40"
},
"nativeSrc": "12797:77:40",
"nodeType": "YulIf",
"src": "12797:77:40"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "12894:4:40",
"nodeType": "YulIdentifier",
"src": "12894:4:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "12953:5:40",
"nodeType": "YulIdentifier",
"src": "12953:5:40"
},
{
"name": "newLen",
"nativeSrc": "12960:6:40",
"nodeType": "YulIdentifier",
"src": "12960:6:40"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "12900:52:40",
"nodeType": "YulIdentifier",
"src": "12900:52:40"
},
"nativeSrc": "12900:67:40",
"nodeType": "YulFunctionCall",
"src": "12900:67:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "12887:6:40",
"nodeType": "YulIdentifier",
"src": "12887:6:40"
},
"nativeSrc": "12887:81:40",
"nodeType": "YulFunctionCall",
"src": "12887:81:40"
},
"nativeSrc": "12887:81:40",
"nodeType": "YulExpressionStatement",
"src": "12887:81:40"
}
]
},
"nativeSrc": "12748:230:40",
"nodeType": "YulCase",
"src": "12748:230:40",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "12101:6:40",
"nodeType": "YulIdentifier",
"src": "12101:6:40"
},
{
"kind": "number",
"nativeSrc": "12109:2:40",
"nodeType": "YulLiteral",
"src": "12109:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "12098:2:40",
"nodeType": "YulIdentifier",
"src": "12098:2:40"
},
"nativeSrc": "12098:14:40",
"nodeType": "YulFunctionCall",
"src": "12098:14:40"
},
"nativeSrc": "12091:887:40",
"nodeType": "YulSwitch",
"src": "12091:887:40"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nativeSrc": "11589:1395:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "11670:4:40",
"nodeType": "YulTypedName",
"src": "11670:4:40",
"type": ""
},
{
"name": "src",
"nativeSrc": "11676:3:40",
"nodeType": "YulTypedName",
"src": "11676:3:40",
"type": ""
}
],
"src": "11589:1395:40"
},
{
"body": {
"nativeSrc": "13038:362:40",
"nodeType": "YulBlock",
"src": "13038:362:40",
"statements": [
{
"nativeSrc": "13048:25:40",
"nodeType": "YulAssignment",
"src": "13048:25:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "13071:1:40",
"nodeType": "YulIdentifier",
"src": "13071:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "13053:17:40",
"nodeType": "YulIdentifier",
"src": "13053:17:40"
},
"nativeSrc": "13053:20:40",
"nodeType": "YulFunctionCall",
"src": "13053:20:40"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "13048:1:40",
"nodeType": "YulIdentifier",
"src": "13048:1:40"
}
]
},
{
"nativeSrc": "13082:25:40",
"nodeType": "YulAssignment",
"src": "13082:25:40",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "13105:1:40",
"nodeType": "YulIdentifier",
"src": "13105:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "13087:17:40",
"nodeType": "YulIdentifier",
"src": "13087:17:40"
},
"nativeSrc": "13087:20:40",
"nodeType": "YulFunctionCall",
"src": "13087:20:40"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "13082:1:40",
"nodeType": "YulIdentifier",
"src": "13082:1:40"
}
]
},
{
"nativeSrc": "13116:28:40",
"nodeType": "YulVariableDeclaration",
"src": "13116:28:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "13139:1:40",
"nodeType": "YulIdentifier",
"src": "13139:1:40"
},
{
"name": "y",
"nativeSrc": "13142:1:40",
"nodeType": "YulIdentifier",
"src": "13142:1:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "13135:3:40",
"nodeType": "YulIdentifier",
"src": "13135:3:40"
},
"nativeSrc": "13135:9:40",
"nodeType": "YulFunctionCall",
"src": "13135:9:40"
},
"variables": [
{
"name": "product_raw",
"nativeSrc": "13120:11:40",
"nodeType": "YulTypedName",
"src": "13120:11:40",
"type": ""
}
]
},
{
"nativeSrc": "13153:41:40",
"nodeType": "YulAssignment",
"src": "13153:41:40",
"value": {
"arguments": [
{
"name": "product_raw",
"nativeSrc": "13182:11:40",
"nodeType": "YulIdentifier",
"src": "13182:11:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "13164:17:40",
"nodeType": "YulIdentifier",
"src": "13164:17:40"
},
"nativeSrc": "13164:30:40",
"nodeType": "YulFunctionCall",
"src": "13164:30:40"
},
"variableNames": [
{
"name": "product",
"nativeSrc": "13153:7:40",
"nodeType": "YulIdentifier",
"src": "13153:7:40"
}
]
},
{
"body": {
"nativeSrc": "13371:22:40",
"nodeType": "YulBlock",
"src": "13371:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "13373:16:40",
"nodeType": "YulIdentifier",
"src": "13373:16:40"
},
"nativeSrc": "13373:18:40",
"nodeType": "YulFunctionCall",
"src": "13373:18:40"
},
"nativeSrc": "13373:18:40",
"nodeType": "YulExpressionStatement",
"src": "13373:18:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nativeSrc": "13304:1:40",
"nodeType": "YulIdentifier",
"src": "13304:1:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "13297:6:40",
"nodeType": "YulIdentifier",
"src": "13297:6:40"
},
"nativeSrc": "13297:9:40",
"nodeType": "YulFunctionCall",
"src": "13297:9:40"
},
{
"arguments": [
{
"name": "y",
"nativeSrc": "13327:1:40",
"nodeType": "YulIdentifier",
"src": "13327:1:40"
},
{
"arguments": [
{
"name": "product",
"nativeSrc": "13334:7:40",
"nodeType": "YulIdentifier",
"src": "13334:7:40"
},
{
"name": "x",
"nativeSrc": "13343:1:40",
"nodeType": "YulIdentifier",
"src": "13343:1:40"
}
],
"functionName": {
"name": "div",
"nativeSrc": "13330:3:40",
"nodeType": "YulIdentifier",
"src": "13330:3:40"
},
"nativeSrc": "13330:15:40",
"nodeType": "YulFunctionCall",
"src": "13330:15:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "13324:2:40",
"nodeType": "YulIdentifier",
"src": "13324:2:40"
},
"nativeSrc": "13324:22:40",
"nodeType": "YulFunctionCall",
"src": "13324:22:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "13277:2:40",
"nodeType": "YulIdentifier",
"src": "13277:2:40"
},
"nativeSrc": "13277:83:40",
"nodeType": "YulFunctionCall",
"src": "13277:83:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "13257:6:40",
"nodeType": "YulIdentifier",
"src": "13257:6:40"
},
"nativeSrc": "13257:113:40",
"nodeType": "YulFunctionCall",
"src": "13257:113:40"
},
"nativeSrc": "13254:139:40",
"nodeType": "YulIf",
"src": "13254:139:40"
}
]
},
"name": "checked_mul_t_uint256",
"nativeSrc": "12990:410:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "13021:1:40",
"nodeType": "YulTypedName",
"src": "13021:1:40",
"type": ""
},
{
"name": "y",
"nativeSrc": "13024:1:40",
"nodeType": "YulTypedName",
"src": "13024:1:40",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nativeSrc": "13030:7:40",
"nodeType": "YulTypedName",
"src": "13030:7:40",
"type": ""
}
],
"src": "12990:410:40"
},
{
"body": {
"nativeSrc": "13450:147:40",
"nodeType": "YulBlock",
"src": "13450:147:40",
"statements": [
{
"nativeSrc": "13460:25:40",
"nodeType": "YulAssignment",
"src": "13460:25:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "13483:1:40",
"nodeType": "YulIdentifier",
"src": "13483:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "13465:17:40",
"nodeType": "YulIdentifier",
"src": "13465:17:40"
},
"nativeSrc": "13465:20:40",
"nodeType": "YulFunctionCall",
"src": "13465:20:40"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "13460:1:40",
"nodeType": "YulIdentifier",
"src": "13460:1:40"
}
]
},
{
"nativeSrc": "13494:25:40",
"nodeType": "YulAssignment",
"src": "13494:25:40",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "13517:1:40",
"nodeType": "YulIdentifier",
"src": "13517:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "13499:17:40",
"nodeType": "YulIdentifier",
"src": "13499:17:40"
},
"nativeSrc": "13499:20:40",
"nodeType": "YulFunctionCall",
"src": "13499:20:40"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "13494:1:40",
"nodeType": "YulIdentifier",
"src": "13494:1:40"
}
]
},
{
"nativeSrc": "13528:16:40",
"nodeType": "YulAssignment",
"src": "13528:16:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "13539:1:40",
"nodeType": "YulIdentifier",
"src": "13539:1:40"
},
{
"name": "y",
"nativeSrc": "13542:1:40",
"nodeType": "YulIdentifier",
"src": "13542:1:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13535:3:40",
"nodeType": "YulIdentifier",
"src": "13535:3:40"
},
"nativeSrc": "13535:9:40",
"nodeType": "YulFunctionCall",
"src": "13535:9:40"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "13528:3:40",
"nodeType": "YulIdentifier",
"src": "13528:3:40"
}
]
},
{
"body": {
"nativeSrc": "13568:22:40",
"nodeType": "YulBlock",
"src": "13568:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "13570:16:40",
"nodeType": "YulIdentifier",
"src": "13570:16:40"
},
"nativeSrc": "13570:18:40",
"nodeType": "YulFunctionCall",
"src": "13570:18:40"
},
"nativeSrc": "13570:18:40",
"nodeType": "YulExpressionStatement",
"src": "13570:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "13560:1:40",
"nodeType": "YulIdentifier",
"src": "13560:1:40"
},
{
"name": "sum",
"nativeSrc": "13563:3:40",
"nodeType": "YulIdentifier",
"src": "13563:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "13557:2:40",
"nodeType": "YulIdentifier",
"src": "13557:2:40"
},
"nativeSrc": "13557:10:40",
"nodeType": "YulFunctionCall",
"src": "13557:10:40"
},
"nativeSrc": "13554:36:40",
"nodeType": "YulIf",
"src": "13554:36:40"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "13406:191:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "13437:1:40",
"nodeType": "YulTypedName",
"src": "13437:1:40",
"type": ""
},
{
"name": "y",
"nativeSrc": "13440:1:40",
"nodeType": "YulTypedName",
"src": "13440:1:40",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "13446:3:40",
"nodeType": "YulTypedName",
"src": "13446:3:40",
"type": ""
}
],
"src": "13406:191:40"
},
{
"body": {
"nativeSrc": "13668:53:40",
"nodeType": "YulBlock",
"src": "13668:53:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "13685:3:40",
"nodeType": "YulIdentifier",
"src": "13685:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "13708:5:40",
"nodeType": "YulIdentifier",
"src": "13708:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "13690:17:40",
"nodeType": "YulIdentifier",
"src": "13690:17:40"
},
"nativeSrc": "13690:24:40",
"nodeType": "YulFunctionCall",
"src": "13690:24:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "13678:6:40",
"nodeType": "YulIdentifier",
"src": "13678:6:40"
},
"nativeSrc": "13678:37:40",
"nodeType": "YulFunctionCall",
"src": "13678:37:40"
},
"nativeSrc": "13678:37:40",
"nodeType": "YulExpressionStatement",
"src": "13678:37:40"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "13603:118:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13656:5:40",
"nodeType": "YulTypedName",
"src": "13656:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "13663:3:40",
"nodeType": "YulTypedName",
"src": "13663:3:40",
"type": ""
}
],
"src": "13603:118:40"
},
{
"body": {
"nativeSrc": "13881:288:40",
"nodeType": "YulBlock",
"src": "13881:288:40",
"statements": [
{
"nativeSrc": "13891:26:40",
"nodeType": "YulAssignment",
"src": "13891:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "13903:9:40",
"nodeType": "YulIdentifier",
"src": "13903:9:40"
},
{
"kind": "number",
"nativeSrc": "13914:2:40",
"nodeType": "YulLiteral",
"src": "13914:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13899:3:40",
"nodeType": "YulIdentifier",
"src": "13899:3:40"
},
"nativeSrc": "13899:18:40",
"nodeType": "YulFunctionCall",
"src": "13899:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "13891:4:40",
"nodeType": "YulIdentifier",
"src": "13891:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "13971:6:40",
"nodeType": "YulIdentifier",
"src": "13971:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13984:9:40",
"nodeType": "YulIdentifier",
"src": "13984:9:40"
},
{
"kind": "number",
"nativeSrc": "13995:1:40",
"nodeType": "YulLiteral",
"src": "13995:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13980:3:40",
"nodeType": "YulIdentifier",
"src": "13980:3:40"
},
"nativeSrc": "13980:17:40",
"nodeType": "YulFunctionCall",
"src": "13980:17:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "13927:43:40",
"nodeType": "YulIdentifier",
"src": "13927:43:40"
},
"nativeSrc": "13927:71:40",
"nodeType": "YulFunctionCall",
"src": "13927:71:40"
},
"nativeSrc": "13927:71:40",
"nodeType": "YulExpressionStatement",
"src": "13927:71:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "14052:6:40",
"nodeType": "YulIdentifier",
"src": "14052:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "14065:9:40",
"nodeType": "YulIdentifier",
"src": "14065:9:40"
},
{
"kind": "number",
"nativeSrc": "14076:2:40",
"nodeType": "YulLiteral",
"src": "14076:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14061:3:40",
"nodeType": "YulIdentifier",
"src": "14061:3:40"
},
"nativeSrc": "14061:18:40",
"nodeType": "YulFunctionCall",
"src": "14061:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "14008:43:40",
"nodeType": "YulIdentifier",
"src": "14008:43:40"
},
"nativeSrc": "14008:72:40",
"nodeType": "YulFunctionCall",
"src": "14008:72:40"
},
"nativeSrc": "14008:72:40",
"nodeType": "YulExpressionStatement",
"src": "14008:72:40"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "14134:6:40",
"nodeType": "YulIdentifier",
"src": "14134:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "14147:9:40",
"nodeType": "YulIdentifier",
"src": "14147:9:40"
},
{
"kind": "number",
"nativeSrc": "14158:2:40",
"nodeType": "YulLiteral",
"src": "14158:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14143:3:40",
"nodeType": "YulIdentifier",
"src": "14143:3:40"
},
"nativeSrc": "14143:18:40",
"nodeType": "YulFunctionCall",
"src": "14143:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "14090:43:40",
"nodeType": "YulIdentifier",
"src": "14090:43:40"
},
"nativeSrc": "14090:72:40",
"nodeType": "YulFunctionCall",
"src": "14090:72:40"
},
"nativeSrc": "14090:72:40",
"nodeType": "YulExpressionStatement",
"src": "14090:72:40"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
"nativeSrc": "13727:442:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "13837:9:40",
"nodeType": "YulTypedName",
"src": "13837:9:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "13849:6:40",
"nodeType": "YulTypedName",
"src": "13849:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "13857:6:40",
"nodeType": "YulTypedName",
"src": "13857:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "13865:6:40",
"nodeType": "YulTypedName",
"src": "13865:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "13876:4:40",
"nodeType": "YulTypedName",
"src": "13876:4:40",
"type": ""
}
],
"src": "13727:442:40"
},
{
"body": {
"nativeSrc": "14273:124:40",
"nodeType": "YulBlock",
"src": "14273:124:40",
"statements": [
{
"nativeSrc": "14283:26:40",
"nodeType": "YulAssignment",
"src": "14283:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "14295:9:40",
"nodeType": "YulIdentifier",
"src": "14295:9:40"
},
{
"kind": "number",
"nativeSrc": "14306:2:40",
"nodeType": "YulLiteral",
"src": "14306:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14291:3:40",
"nodeType": "YulIdentifier",
"src": "14291:3:40"
},
"nativeSrc": "14291:18:40",
"nodeType": "YulFunctionCall",
"src": "14291:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "14283:4:40",
"nodeType": "YulIdentifier",
"src": "14283:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "14363:6:40",
"nodeType": "YulIdentifier",
"src": "14363:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "14376:9:40",
"nodeType": "YulIdentifier",
"src": "14376:9:40"
},
{
"kind": "number",
"nativeSrc": "14387:1:40",
"nodeType": "YulLiteral",
"src": "14387:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14372:3:40",
"nodeType": "YulIdentifier",
"src": "14372:3:40"
},
"nativeSrc": "14372:17:40",
"nodeType": "YulFunctionCall",
"src": "14372:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "14319:43:40",
"nodeType": "YulIdentifier",
"src": "14319:43:40"
},
"nativeSrc": "14319:71:40",
"nodeType": "YulFunctionCall",
"src": "14319:71:40"
},
"nativeSrc": "14319:71:40",
"nodeType": "YulExpressionStatement",
"src": "14319:71:40"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "14175:222:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "14245:9:40",
"nodeType": "YulTypedName",
"src": "14245:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "14257:6:40",
"nodeType": "YulTypedName",
"src": "14257:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "14268:4:40",
"nodeType": "YulTypedName",
"src": "14268:4:40",
"type": ""
}
],
"src": "14175:222:40"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\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__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 cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint8(x, y) -> diff {\n x := cleanup_t_uint8(x)\n y := cleanup_t_uint8(y)\n diff := sub(x, y)\n\n if gt(diff, 0xff) { panic_error_0x11() }\n\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint8(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\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 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 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 checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\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": 40,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60c060405234801562000010575f80fd5b50604051620060dc380380620060dc833981810160405281019062000036919062000878565b8484838383836200004c620002d860201b60201c565b8484818181818d5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000c6575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000bd91906200094b565b60405180910390fd5b620000d781620002e060201b60201c565b508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000172576040517fb586360400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60805173ffffffffffffffffffffffffffffffffffffffff1663ca5eb5e1826040518263ffffffff1660e01b8152600401620001af91906200094b565b5f604051808303815f87803b158015620001c7575f80fd5b505af1158015620001da573d5f803e3d5ffd5b5050505050505050620001f2620003a160201b60201c565b60ff168360ff16101562000232576040517f1e9714b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62000242620003a160201b60201c565b836200024f91906200099f565b600a6200025d919062000b2a565b60a08181525050505050816008908162000278919062000da8565b5080600990816200028a919062000da8565b50505050505050620002cd81620002a6620002d860201b60201c565b600a620002b4919062000b2a565b85620002c1919062000e8c565b620003a960201b60201c565b505050505062000f77565b5f6012905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6006905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200041c575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200041391906200094b565b60405180910390fd5b6200042f5f83836200043360201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000487578060075f8282546200047a919062000ed6565b925050819055506200055a565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000514578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200050b9392919062000f21565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a3578060075f8282540392505081905550620005ee565b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200064d919062000f5c565b60405180910390a3505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620006bb8262000673565b810181811067ffffffffffffffff82111715620006dd57620006dc62000683565b5b80604052505050565b5f620006f16200065a565b9050620006ff8282620006b0565b919050565b5f67ffffffffffffffff82111562000721576200072062000683565b5b6200072c8262000673565b9050602081019050919050565b5f5b83811015620007585780820151818401526020810190506200073b565b5f8484015250505050565b5f62000779620007738462000704565b620006e6565b9050828152602081018484840111156200079857620007976200066f565b5b620007a584828562000739565b509392505050565b5f82601f830112620007c457620007c36200066b565b5b8151620007d684826020860162000763565b91505092915050565b5f819050919050565b620007f381620007df565b8114620007fe575f80fd5b50565b5f815190506200081181620007e8565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620008428262000817565b9050919050565b620008548162000836565b81146200085f575f80fd5b50565b5f81519050620008728162000849565b92915050565b5f805f805f60a0868803121562000894576200089362000663565b5b5f86015167ffffffffffffffff811115620008b457620008b362000667565b5b620008c288828901620007ad565b955050602086015167ffffffffffffffff811115620008e657620008e562000667565b5b620008f488828901620007ad565b9450506040620009078882890162000801565b93505060606200091a8882890162000862565b92505060806200092d8882890162000862565b9150509295509295909350565b620009458162000836565b82525050565b5f602082019050620009605f8301846200093a565b92915050565b5f60ff82169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620009ab8262000966565b9150620009b88362000966565b9250828203905060ff811115620009d457620009d362000972565b5b92915050565b5f8160011c9050919050565b5f808291508390505b600185111562000a375780860481111562000a0f5762000a0e62000972565b5b600185161562000a1f5780820291505b808102905062000a2f85620009da565b9450620009ef565b94509492505050565b5f8262000a51576001905062000b23565b8162000a60575f905062000b23565b816001811462000a79576002811462000a845762000aba565b600191505062000b23565b60ff84111562000a995762000a9862000972565b5b8360020a91508482111562000ab35762000ab262000972565b5b5062000b23565b5060208310610133831016604e8410600b841016171562000af45782820a90508381111562000aee5762000aed62000972565b5b62000b23565b62000b038484846001620009e6565b9250905081840481111562000b1d5762000b1c62000972565b5b81810290505b9392505050565b5f62000b3682620007df565b915062000b438362000966565b925062000b727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a40565b905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000bc957607f821691505b60208210810362000bdf5762000bde62000b84565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c06565b62000c4f868362000c06565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000c9062000c8a62000c8484620007df565b62000c67565b620007df565b9050919050565b5f819050919050565b62000cab8362000c70565b62000cc362000cba8262000c97565b84845462000c12565b825550505050565b5f90565b62000cd962000ccb565b62000ce681848462000ca0565b505050565b5b8181101562000d0d5762000d015f8262000ccf565b60018101905062000cec565b5050565b601f82111562000d5c5762000d268162000be5565b62000d318462000bf7565b8101602085101562000d41578190505b62000d5962000d508562000bf7565b83018262000ceb565b50505b505050565b5f82821c905092915050565b5f62000d7e5f198460080262000d61565b1980831691505092915050565b5f62000d98838362000d6d565b9150826002028217905092915050565b62000db38262000b7a565b67ffffffffffffffff81111562000dcf5762000dce62000683565b5b62000ddb825462000bb1565b62000de882828562000d11565b5f60209050601f83116001811462000e1e575f841562000e09578287015190505b62000e15858262000d8b565b86555062000e84565b601f19841662000e2e8662000be5565b5f5b8281101562000e575784890151825560018201915060208501945060208101905062000e30565b8683101562000e77578489015162000e73601f89168262000d6d565b8355505b6001600288020188555050505b505050505050565b5f62000e9882620007df565b915062000ea583620007df565b925082820262000eb581620007df565b9150828204841483151762000ecf5762000ece62000972565b5b5092915050565b5f62000ee282620007df565b915062000eef83620007df565b925082820190508082111562000f0a5762000f0962000972565b5b92915050565b62000f1b81620007df565b82525050565b5f60608201905062000f365f8301866200093a565b62000f45602083018562000f10565b62000f54604083018462000f10565b949350505050565b5f60208201905062000f715f83018462000f10565b92915050565b60805160a0516150f662000fe65f395f818161116d0152818161254b0152818161256c01528181612610015261295f01525f8181610c8d01528181610f6e0152818161160f01528181611a5901528181611f5601528181612a5901528181612cab0152612da301526150f65ff3fe608060405260043610610250575f3560e01c80637d25a05e11610138578063bb0b6a53116100b5578063d045a0dc11610079578063d045a0dc146108e7578063d424388514610903578063dd62ed3e1461092b578063f2fde38b14610967578063fc0c546a1461098f578063ff7bd03d146109b957610250565b8063bb0b6a53146107fa578063bc70b35414610836578063bd815db014610872578063c7c7f5b31461088e578063ca5eb5e1146108bf57610250565b8063963efcaa116100fc578063963efcaa146107185780639f68b96414610742578063a9059cbb1461076c578063b731ea0a146107a8578063b98bd070146107d257610250565b80637d25a05e1461062257806382413eac1461065e578063857749b01461069a5780638da5cb5b146106c457806395d89b41146106ee57610250565b806323b872dd116101d15780635535d461116101955780635535d461146105065780635a0dfe4d146105425780635e280f111461057e5780636fc1b31e146105a857806370a08231146105d0578063715018a61461060c57610250565b806323b872dd14610412578063313ce5671461044e5780633400288b146104785780633b6f743b146104a057806352ae2879146104dc57610250565b8063134d4f2511610218578063134d4f251461033e578063156a0d0f1461036857806317442b701461039357806318160ddd146103be5780631f5e1334146103e857610250565b806306fdde0314610254578063095ea7b31461027e5780630d35b415146102ba578063111ecdad146102f857806313137d6514610322575b5f80fd5b34801561025f575f80fd5b506102686109f5565b6040516102759190613028565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f91906130e6565b610a85565b6040516102b1919061313e565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db9190613179565b610aa7565b6040516102ef9392919061337e565b60405180910390f35b348015610303575f80fd5b5061030c610c4f565b60405161031991906133c9565b60405180910390f35b61033c60048036038101906103379190613494565b610c74565b005b348015610349575f80fd5b50610352610d94565b60405161035f9190613567565b60405180910390f35b348015610373575f80fd5b5061037c610d99565b60405161038a9291906135dc565b60405180910390f35b34801561039e575f80fd5b506103a7610dc6565b6040516103b5929190613603565b60405180910390f35b3480156103c9575f80fd5b506103d2610dd4565b6040516103df9190613639565b60405180910390f35b3480156103f3575f80fd5b506103fc610ddd565b6040516104099190613567565b60405180910390f35b34801561041d575f80fd5b5061043860048036038101906104339190613652565b610de2565b604051610445919061313e565b60405180910390f35b348015610459575f80fd5b50610462610e10565b60405161046f91906136bd565b60405180910390f35b348015610483575f80fd5b5061049e6004803603810190610499919061370f565b610e18565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190613777565b610e2e565b6040516104d391906137fe565b60405180910390f35b3480156104e7575f80fd5b506104f0610e96565b6040516104fd91906133c9565b60405180910390f35b348015610511575f80fd5b5061052c60048036038101906105279190613841565b610e9d565b60405161053991906138d1565b60405180910390f35b34801561054d575f80fd5b506105686004803603810190610563919061370f565b610f43565b604051610575919061313e565b60405180910390f35b348015610589575f80fd5b50610592610f6c565b60405161059f919061394c565b60405180910390f35b3480156105b3575f80fd5b506105ce60048036038101906105c99190613965565b610f90565b005b3480156105db575f80fd5b506105f660048036038101906105f19190613965565b611012565b6040516106039190613639565b60405180910390f35b348015610617575f80fd5b50610620611058565b005b34801561062d575f80fd5b506106486004803603810190610643919061370f565b61106b565b6040516106559190613990565b60405180910390f35b348015610669575f80fd5b50610684600480360381019061067f91906139a9565b611072565b604051610691919061313e565b60405180910390f35b3480156106a5575f80fd5b506106ae6110ac565b6040516106bb91906136bd565b60405180910390f35b3480156106cf575f80fd5b506106d86110b4565b6040516106e591906133c9565b60405180910390f35b3480156106f9575f80fd5b506107026110db565b60405161070f9190613028565b60405180910390f35b348015610723575f80fd5b5061072c61116b565b6040516107399190613639565b60405180910390f35b34801561074d575f80fd5b5061075661118f565b604051610763919061313e565b60405180910390f35b348015610777575f80fd5b50610792600480360381019061078d91906130e6565b611193565b60405161079f919061313e565b60405180910390f35b3480156107b3575f80fd5b506107bc6111b5565b6040516107c991906133c9565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613a6f565b6111da565b005b348015610805575f80fd5b50610820600480360381019061081b9190613aba565b6111fb565b60405161082d9190613af4565b60405180910390f35b348015610841575f80fd5b5061085c60048036038101906108579190613b0d565b611210565b60405161086991906138d1565b60405180910390f35b61088c60048036038101906108879190613bd3565b611412565b005b6108a860048036038101906108a39190613c3c565b6115de565b6040516108b6929190613d33565b60405180910390f35b3480156108ca575f80fd5b506108e560048036038101906108e09190613965565b611605565b005b61090160048036038101906108fc9190613494565b611696565b005b34801561090e575f80fd5b5061092960048036038101906109249190613965565b611713565b005b348015610936575f80fd5b50610951600480360381019061094c9190613d5a565b611795565b60405161095e9190613639565b60405180910390f35b348015610972575f80fd5b5061098d60048036038101906109889190613965565b611817565b005b34801561099a575f80fd5b506109a361189b565b6040516109b091906133c9565b60405180910390f35b3480156109c4575f80fd5b506109df60048036038101906109da9190613d98565b6118a2565b6040516109ec919061313e565b60405180910390f35b606060088054610a0490613df0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3090613df0565b8015610a7b5780601f10610a5257610100808354040283529160200191610a7b565b820191905f5260205f20905b815481529060010190602001808311610a5e57829003601f168201915b5050505050905090565b5f80610a8f6118df565b9050610a9c8185856118e6565b600191505092915050565b610aaf612f0b565b6060610ab9612f23565b5f803073ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b289190613e34565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b949190613e73565b905060405180604001604052808381526020018281525094505f67ffffffffffffffff811115610bc757610bc6613e9e565b5b604051908082528060200260200182016040528015610c0057816020015b610bed612f3b565b815260200190600190039081610be55790505b5093505f80610c29886040013589606001358a5f016020810190610c249190613aba565b6118f8565b915091506040518060400160405280838152602001828152509450505050509193909250565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d0457336040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152600401610cfb91906133c9565b60405180910390fd5b8660200135610d23885f016020810190610d1e9190613aba565b611957565b14610d7c57865f016020810190610d3a9190613aba565b87602001356040517fc26bebcc000000000000000000000000000000000000000000000000000000008152600401610d73929190613eda565b60405180910390fd5b610d8b878787878787876119c8565b50505050505050565b600281565b5f807f02e49c2c000000000000000000000000000000000000000000000000000000006001915091509091565b5f8060016002915091509091565b5f600754905090565b600181565b5f80610dec6118df565b9050610df9858285611b52565b610e04858585611be5565b60019150509392505050565b5f6012905090565b610e20611cd5565b610e2a8282611d5c565b5050565b610e36612f54565b5f610e5b84604001358560600135865f016020810190610e569190613aba565b6118f8565b9150505f80610e6a8684611dbb565b91509150610e8b865f016020810190610e839190613aba565b838388611f4c565b935050505092915050565b5f30905090565b6003602052815f5260405f20602052805f5260405f205f91509150508054610ec490613df0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef090613df0565b8015610f3b5780601f10610f1257610100808354040283529160200191610f3b565b820191905f5260205f20905b815481529060010190602001808311610f1e57829003601f168201915b505050505081565b5f8160015f8563ffffffff1663ffffffff1681526020019081526020015f205414905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f98611cd5565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d44141978160405161100791906133c9565b60405180910390a150565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611060611cd5565b6110695f61202d565b565b5f92915050565b5f3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050949350505050565b5f6006905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546110ea90613df0565b80601f016020809104026020016040519081016040528092919081815260200182805461111690613df0565b80156111615780601f1061113857610100808354040283529160200191611161565b820191905f5260205f20905b81548152906001019060200180831161114457829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f90565b5f8061119d6118df565b90506111aa818585611be5565b600191505092915050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e2611cd5565b6111f78282906111f29190614132565b6120ee565b5050565b6001602052805f5260405f205f915090505481565b60605f60035f8763ffffffff1663ffffffff1681526020019081526020015f205f8661ffff1661ffff1681526020019081526020015f20805461125290613df0565b80601f016020809104026020016040519081016040528092919081815260200182805461127e90613df0565b80156112c95780601f106112a0576101008083540402835291602001916112c9565b820191905f5260205f20905b8154815290600101906020018083116112ac57829003601f168201915b505050505090505f8151036113245783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505091505061140a565b5f8484905003611337578091505061140a565b600284849050106113cb5761138e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612203565b80848460029080926113a29392919061414e565b6040516020016113b4939291906141e6565b60405160208183030381529060405291505061140a565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401611401929190614237565b60405180910390fd5b949350505050565b5f5b82829050811015611531573683838381811061143357611432614259565b5b90506020028101906114459190614292565b905061146a815f015f01602081019061145e9190613aba565b825f0160200135610f43565b6114745750611524565b3073ffffffffffffffffffffffffffffffffffffffff1663d045a0dc8260c00135835f018460a00135858061010001906114ae91906142ba565b8760e00160208101906114c19190613965565b888061012001906114d291906142ba565b6040518963ffffffff1660e01b81526004016114f497969594939291906143ef565b5f604051808303818588803b15801561150b575f80fd5b505af115801561151d573d5f803e3d5ffd5b5050505050505b8080600101915050611414565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa15801561157a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906115a291906144c0565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016115d591906138d1565b60405180910390fd5b6115e6612f6c565b6115ee612f23565b6115f985858561225c565b91509150935093915050565b61160d611cd5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ca5eb5e1826040518263ffffffff1660e01b815260040161166691906133c9565b5f604051808303815f87803b15801561167d575f80fd5b505af115801561168f573d5f803e3d5ffd5b5050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116fb576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61170a87878787878787612361565b50505050505050565b61171b611cd5565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277608160405161178a91906133c9565b60405180910390a150565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61181f611cd5565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361188f575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161188691906133c9565b60405180910390fd5b6118988161202d565b50565b5f30905090565b5f816020013560015f845f0160208101906118bd9190613aba565b63ffffffff1663ffffffff1681526020019081526020015f2054149050919050565b5f33905090565b6118f38383836001612379565b505050565b5f8061190385612548565b91508190508381101561194f5780846040517f71c4efed000000000000000000000000000000000000000000000000000000008152600401611946929190614507565b60405180910390fd5b935093915050565b5f8060015f8463ffffffff1663ffffffff1681526020019081526020015f205490505f801b81036119bf57826040517ff6ff4fb70000000000000000000000000000000000000000000000000000000081526004016119b6919061452e565b60405180910390fd5b80915050919050565b5f6119db6119d687876125a7565b6125d1565b90505f611a0b826119f46119ef8a8a6125dc565b61260d565b8b5f016020810190611a069190613aba565b61264b565b9050611a178787612699565b15611ae5575f611a558a6040016020810190611a339190614547565b8b5f016020810190611a459190613aba565b84611a508c8c6126ac565b61270e565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637cb59012848b5f856040518563ffffffff1660e01b8152600401611ab694939291906145ab565b5f604051808303815f87803b158015611acd575f80fd5b505af1158015611adf573d5f803e3d5ffd5b50505050505b8173ffffffffffffffffffffffffffffffffffffffff16887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c8b5f016020810190611b309190613aba565b84604051611b3f9291906145f5565b60405180910390a3505050505050505050565b5f611b5d8484611795565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015611bdf5781811015611bd0578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401611bc79392919061461c565b60405180910390fd5b611bde84848484035f612379565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c55575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611c4c91906133c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611cbc91906133c9565b60405180910390fd5b611cd0838383612740565b505050565b611cdd6118df565b73ffffffffffffffffffffffffffffffffffffffff16611cfb6110b4565b73ffffffffffffffffffffffffffffffffffffffff1614611d5a57611d1e6118df565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611d5191906133c9565b60405180910390fd5b565b8060015f8463ffffffff1663ffffffff1681526020019081526020015f20819055507f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b8282604051611daf929190613eda565b60405180910390a15050565b6060805f611e278560200135611dd08661295c565b878060a00190611de091906142ba565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612990565b80925081945050505f81611e3c576001611e3f565b60025b9050611e6c865f016020810190611e569190613aba565b82888060800190611e6791906142ba565b611210565b92505f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f42578073ffffffffffffffffffffffffffffffffffffffff1663043a78eb86866040518363ffffffff1660e01b8152600401611f01929190614651565b602060405180830381865afa158015611f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f40919061469a565b505b5050509250929050565b611f54612f54565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611fb089611957565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611fe5929190614796565b6040805180830381865afa158015611fff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120239190614811565b9050949350505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5b81518110156121c85761212082828151811061210f5761210e614259565b5b602002602001015160400151612203565b81818151811061213357612132614259565b5b60200260200101516040015160035f84848151811061215557612154614259565b5b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f84848151811061218d5761218c614259565b5b60200260200101516020015161ffff1661ffff1681526020019081526020015f2090816121ba91906149d0565b5080806001019150506120f0565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516121f89190614bb6565b60405180910390a150565b5f60028201519050600361ffff168161ffff161461225857816040517f9a6d49cd00000000000000000000000000000000000000000000000000000000815260040161224f91906138d1565b60405180910390fd5b5050565b612264612f6c565b61226c612f23565b5f8061229333886040013589606001358a5f01602081019061228e9190613aba565b6129fe565b915091505f806122a38984611dbb565b915091506122d5895f0160208101906122bc9190613aba565b83838b8036038101906122cf9190614c23565b8b612a26565b955060405180604001604052808581526020018481525094503373ffffffffffffffffffffffffffffffffffffffff16865f01517f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a8b5f01602081019061233c9190613aba565b878760405161234d93929190614c4e565b60405180910390a350505050935093915050565b612370878787878787876119c8565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123e9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016123e091906133c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612459575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161245091906133c9565b60405180910390fd5b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015612542578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516125399190613639565b60405180910390a35b50505050565b5f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000836125969190614cdd565b6125a09190614d0d565b9050919050565b5f82825f90602060ff16926125be9392919061414e565b906125c99190614d58565b905092915050565b5f815f1c9050919050565b5f8282602060ff1690602860ff16926125f79392919061414e565b906126029190614de1565b60c01c905092915050565b5f7f00000000000000000000000000000000000000000000000000000000000000008267ffffffffffffffff166126449190614d0d565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036126855761dead93505b61268f8484612b3c565b8290509392505050565b5f602860ff168383905011905092915050565b60608282602860ff169080926126c49392919061414e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050905092915050565b6060848484846040516020016127279493929190614ec7565b6040516020818303038152906040529050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612790578060075f8282546127849190614f10565b92505081905550612860565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561281a578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016128119392919061461c565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128a7578060075f82825403925050819055506128f2565b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161294f9190613639565b60405180910390a3505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000826129899190614cdd565b9050919050565b60605f808351119050806129c55784846040516020016129b1929190614f63565b6040516020818303038152906040526129f4565b84846129d033612bbb565b856040516020016129e49493929190614f8e565b6040516020818303038152906040525b9150935093915050565b5f80612a0b8585856118f8565b8092508193505050612a1d8683612bdc565b94509492505050565b612a2e612f6c565b5f612a3b845f0151612c5b565b90505f84602001511115612a5757612a568460200151612ca8565b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff168152602001612ab48c611957565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612aef929190614796565b60806040518083038185885af1158015612b0b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612b309190615060565b91505095945050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612bac575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401612ba391906133c9565b60405180910390fd5b612bb75f8383612740565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff165f1b9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c4c575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401612c4391906133c9565b60405180910390fd5b612c57825f83612740565b5050565b5f813414612ca057346040517f9f704120000000000000000000000000000000000000000000000000000000008152600401612c979190613639565b60405180910390fd5b819050919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d369190613e34565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d9d576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612dea337f0000000000000000000000000000000000000000000000000000000000000000848473ffffffffffffffffffffffffffffffffffffffff16612dee909392919063ffffffff16565b5050565b612e6a848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401612e239392919061508b565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e70565b50505050565b5f8060205f8451602086015f885af180612e8f576040513d5f823e3d81fd5b3d92505f519150505f8214612ea8576001811415612ec3565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b15612f0557836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401612efc91906133c9565b60405180910390fd5b50505050565b60405180604001604052805f81526020015f81525090565b60405180604001604052805f81526020015f81525090565b60405180604001604052805f8152602001606081525090565b60405180604001604052805f81526020015f81525090565b60405180606001604052805f80191681526020015f67ffffffffffffffff168152602001612f98612f54565b81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612fd5578082015181840152602081019050612fba565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ffa82612f9e565b6130048185612fa8565b9350613014818560208601612fb8565b61301d81612fe0565b840191505092915050565b5f6020820190508181035f8301526130408184612ff0565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61308282613059565b9050919050565b61309281613078565b811461309c575f80fd5b50565b5f813590506130ad81613089565b92915050565b5f819050919050565b6130c5816130b3565b81146130cf575f80fd5b50565b5f813590506130e0816130bc565b92915050565b5f80604083850312156130fc576130fb613051565b5b5f6131098582860161309f565b925050602061311a858286016130d2565b9150509250929050565b5f8115159050919050565b61313881613124565b82525050565b5f6020820190506131515f83018461312f565b92915050565b5f80fd5b5f60e082840312156131705761316f613157565b5b81905092915050565b5f6020828403121561318e5761318d613051565b5b5f82013567ffffffffffffffff8111156131ab576131aa613055565b5b6131b78482850161315b565b91505092915050565b6131c9816130b3565b82525050565b604082015f8201516131e35f8501826131c0565b5060208201516131f660208501826131c0565b50505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61323781613225565b82525050565b5f82825260208201905092915050565b5f61325782612f9e565b613261818561323d565b9350613271818560208601612fb8565b61327a81612fe0565b840191505092915050565b5f604083015f83015161329a5f86018261322e565b50602083015184820360208601526132b2828261324d565b9150508091505092915050565b5f6132ca8383613285565b905092915050565b5f602082019050919050565b5f6132e8826131fc565b6132f28185613206565b93508360208202850161330485613216565b805f5b8581101561333f578484038952815161332085826132bf565b945061332b836132d2565b925060208a01995050600181019050613307565b50829750879550505050505092915050565b604082015f8201516133655f8501826131c0565b50602082015161337860208501826131c0565b50505050565b5f60a0820190506133915f8301866131cf565b81810360408301526133a381856132de565b90506133b26060830184613351565b949350505050565b6133c381613078565b82525050565b5f6020820190506133dc5f8301846133ba565b92915050565b5f606082840312156133f7576133f6613157565b5b81905092915050565b5f819050919050565b61341281613400565b811461341c575f80fd5b50565b5f8135905061342d81613409565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261345457613453613433565b5b8235905067ffffffffffffffff81111561347157613470613437565b5b60208301915083600182028301111561348d5761348c61343b565b5b9250929050565b5f805f805f805f60e0888a0312156134af576134ae613051565b5b5f6134bc8a828b016133e2565b97505060606134cd8a828b0161341f565b965050608088013567ffffffffffffffff8111156134ee576134ed613055565b5b6134fa8a828b0161343f565b955095505060a061350d8a828b0161309f565b93505060c088013567ffffffffffffffff81111561352e5761352d613055565b5b61353a8a828b0161343f565b925092505092959891949750929550565b5f61ffff82169050919050565b6135618161354b565b82525050565b5f60208201905061357a5f830184613558565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6135b481613580565b82525050565b5f67ffffffffffffffff82169050919050565b6135d6816135ba565b82525050565b5f6040820190506135ef5f8301856135ab565b6135fc60208301846135cd565b9392505050565b5f6040820190506136165f8301856135cd565b61362360208301846135cd565b9392505050565b613633816130b3565b82525050565b5f60208201905061364c5f83018461362a565b92915050565b5f805f6060848603121561366957613668613051565b5b5f6136768682870161309f565b93505060206136878682870161309f565b9250506040613698868287016130d2565b9150509250925092565b5f60ff82169050919050565b6136b7816136a2565b82525050565b5f6020820190506136d05f8301846136ae565b92915050565b5f63ffffffff82169050919050565b6136ee816136d6565b81146136f8575f80fd5b50565b5f81359050613709816136e5565b92915050565b5f806040838503121561372557613724613051565b5b5f613732858286016136fb565b92505060206137438582860161341f565b9150509250929050565b61375681613124565b8114613760575f80fd5b50565b5f813590506137718161374d565b92915050565b5f806040838503121561378d5761378c613051565b5b5f83013567ffffffffffffffff8111156137aa576137a9613055565b5b6137b68582860161315b565b92505060206137c785828601613763565b9150509250929050565b604082015f8201516137e55f8501826131c0565b5060208201516137f860208501826131c0565b50505050565b5f6040820190506138115f8301846137d1565b92915050565b6138208161354b565b811461382a575f80fd5b50565b5f8135905061383b81613817565b92915050565b5f806040838503121561385757613856613051565b5b5f613864858286016136fb565b92505060206138758582860161382d565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f6138a38261387f565b6138ad8185613889565b93506138bd818560208601612fb8565b6138c681612fe0565b840191505092915050565b5f6020820190508181035f8301526138e98184613899565b905092915050565b5f819050919050565b5f61391461390f61390a84613059565b6138f1565b613059565b9050919050565b5f613925826138fa565b9050919050565b5f6139368261391b565b9050919050565b6139468161392c565b82525050565b5f60208201905061395f5f83018461393d565b92915050565b5f6020828403121561397a57613979613051565b5b5f6139878482850161309f565b91505092915050565b5f6020820190506139a35f8301846135cd565b92915050565b5f805f8060a085870312156139c1576139c0613051565b5b5f6139ce878288016133e2565b945050606085013567ffffffffffffffff8111156139ef576139ee613055565b5b6139fb8782880161343f565b93509350506080613a0e8782880161309f565b91505092959194509250565b5f8083601f840112613a2f57613a2e613433565b5b8235905067ffffffffffffffff811115613a4c57613a4b613437565b5b602083019150836020820283011115613a6857613a6761343b565b5b9250929050565b5f8060208385031215613a8557613a84613051565b5b5f83013567ffffffffffffffff811115613aa257613aa1613055565b5b613aae85828601613a1a565b92509250509250929050565b5f60208284031215613acf57613ace613051565b5b5f613adc848285016136fb565b91505092915050565b613aee81613400565b82525050565b5f602082019050613b075f830184613ae5565b92915050565b5f805f8060608587031215613b2557613b24613051565b5b5f613b32878288016136fb565b9450506020613b438782880161382d565b935050604085013567ffffffffffffffff811115613b6457613b63613055565b5b613b708782880161343f565b925092505092959194509250565b5f8083601f840112613b9357613b92613433565b5b8235905067ffffffffffffffff811115613bb057613baf613437565b5b602083019150836020820283011115613bcc57613bcb61343b565b5b9250929050565b5f8060208385031215613be957613be8613051565b5b5f83013567ffffffffffffffff811115613c0657613c05613055565b5b613c1285828601613b7e565b92509250509250929050565b5f60408284031215613c3357613c32613157565b5b81905092915050565b5f805f60808486031215613c5357613c52613051565b5b5f84013567ffffffffffffffff811115613c7057613c6f613055565b5b613c7c8682870161315b565b9350506020613c8d86828701613c1e565b9250506060613c9e8682870161309f565b9150509250925092565b613cb181613400565b82525050565b613cc0816135ba565b82525050565b604082015f820151613cda5f8501826131c0565b506020820151613ced60208501826131c0565b50505050565b608082015f820151613d075f850182613ca8565b506020820151613d1a6020850182613cb7565b506040820151613d2d6040850182613cc6565b50505050565b5f60c082019050613d465f830185613cf3565b613d536080830184613351565b9392505050565b5f8060408385031215613d7057613d6f613051565b5b5f613d7d8582860161309f565b9250506020613d8e8582860161309f565b9150509250929050565b5f60608284031215613dad57613dac613051565b5b5f613dba848285016133e2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613e0757607f821691505b602082108103613e1a57613e19613dc3565b5b50919050565b5f81519050613e2e81613089565b92915050565b5f60208284031215613e4957613e48613051565b5b5f613e5684828501613e20565b91505092915050565b5f81519050613e6d816130bc565b92915050565b5f60208284031215613e8857613e87613051565b5b5f613e9584828501613e5f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613ed4816136d6565b82525050565b5f604082019050613eed5f830185613ecb565b613efa6020830184613ae5565b9392505050565b613f0a82612fe0565b810181811067ffffffffffffffff82111715613f2957613f28613e9e565b5b80604052505050565b5f613f3b613048565b9050613f478282613f01565b919050565b5f67ffffffffffffffff821115613f6657613f65613e9e565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b5f67ffffffffffffffff821115613f9d57613f9c613e9e565b5b613fa682612fe0565b9050602081019050919050565b828183375f83830152505050565b5f613fd3613fce84613f83565b613f32565b905082815260208101848484011115613fef57613fee613f7f565b5b613ffa848285613fb3565b509392505050565b5f82601f83011261401657614015613433565b5b8135614026848260208601613fc1565b91505092915050565b5f6060828403121561404457614043613f77565b5b61404e6060613f32565b90505f61405d848285016136fb565b5f8301525060206140708482850161382d565b602083015250604082013567ffffffffffffffff81111561409457614093613f7b565b5b6140a084828501614002565b60408301525092915050565b5f6140be6140b984613f4c565b613f32565b905080838252602082019050602084028301858111156140e1576140e061343b565b5b835b8181101561412857803567ffffffffffffffff81111561410657614105613433565b5b808601614113898261402f565b855260208501945050506020810190506140e3565b5050509392505050565b5f61413e3684846140ac565b905092915050565b5f80fd5b5f80fd5b5f808585111561416157614160614146565b5b838611156141725761417161414a565b5b6001850283019150848603905094509492505050565b5f81905092915050565b5f61419c8261387f565b6141a68185614188565b93506141b6818560208601612fb8565b80840191505092915050565b5f6141cd8385614188565b93506141da838584613fb3565b82840190509392505050565b5f6141f18286614192565b91506141fe8284866141c2565b9150819050949350505050565b5f6142168385613889565b9350614223838584613fb3565b61422c83612fe0565b840190509392505050565b5f6020820190508181035f83015261425081848661420b565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f80fd5b5f80fd5b5f80fd5b5f82356001610140038336030381126142ae576142ad614286565b5b80830191505092915050565b5f80833560016020038436030381126142d6576142d5614286565b5b80840192508235915067ffffffffffffffff8211156142f8576142f761428a565b5b6020830192506001820236038313156143145761431361428e565b5b509250929050565b5f61432a60208401846136fb565b905092915050565b61433b816136d6565b82525050565b5f61434f602084018461341f565b905092915050565b614360816135ba565b811461436a575f80fd5b50565b5f8135905061437b81614357565b92915050565b5f61438f602084018461436d565b905092915050565b606082016143a75f83018361431c565b6143b35f850182614332565b506143c16020830183614341565b6143ce6020850182613ca8565b506143dc6040830183614381565b6143e96040850182613cb7565b50505050565b5f60e0820190506144025f83018a614397565b61440f6060830189613ae5565b818103608083015261442281878961420b565b905061443160a08301866133ba565b81810360c083015261444481848661420b565b905098975050505050505050565b5f61446461445f84613f83565b613f32565b9050828152602081018484840111156144805761447f613f7f565b5b61448b848285612fb8565b509392505050565b5f82601f8301126144a7576144a6613433565b5b81516144b7848260208601614452565b91505092915050565b5f602082840312156144d5576144d4613051565b5b5f82015167ffffffffffffffff8111156144f2576144f1613055565b5b6144fe84828501614493565b91505092915050565b5f60408201905061451a5f83018561362a565b614527602083018461362a565b9392505050565b5f6020820190506145415f830184613ecb565b92915050565b5f6020828403121561455c5761455b613051565b5b5f6145698482850161436d565b91505092915050565b5f819050919050565b5f61459561459061458b84614572565b6138f1565b61354b565b9050919050565b6145a58161457b565b82525050565b5f6080820190506145be5f8301876133ba565b6145cb6020830186613ae5565b6145d8604083018561459c565b81810360608301526145ea8184613899565b905095945050505050565b5f6040820190506146085f830185613ecb565b614615602083018461362a565b9392505050565b5f60608201905061462f5f8301866133ba565b61463c602083018561362a565b614649604083018461362a565b949350505050565b5f6040820190508181035f8301526146698185613899565b9050818103602083015261467d8184613899565b90509392505050565b5f815190506146948161374d565b92915050565b5f602082840312156146af576146ae613051565b5b5f6146bc84828501614686565b91505092915050565b5f82825260208201905092915050565b5f6146df8261387f565b6146e981856146c5565b93506146f9818560208601612fb8565b61470281612fe0565b840191505092915050565b61471681613124565b82525050565b5f60a083015f8301516147315f860182614332565b5060208301516147446020860182613ca8565b506040830151848203604086015261475c82826146d5565b9150506060830151848203606086015261477682826146d5565b915050608083015161478b608086018261470d565b508091505092915050565b5f6040820190508181035f8301526147ae818561471c565b90506147bd60208301846133ba565b9392505050565b5f604082840312156147d9576147d8613f77565b5b6147e36040613f32565b90505f6147f284828501613e5f565b5f83015250602061480584828501613e5f565b60208301525092915050565b5f6040828403121561482657614825613051565b5b5f614833848285016147c4565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026148987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261485d565b6148a2868361485d565b95508019841693508086168417925050509392505050565b5f6148d46148cf6148ca846130b3565b6138f1565b6130b3565b9050919050565b5f819050919050565b6148ed836148ba565b6149016148f9826148db565b848454614869565b825550505050565b5f90565b614915614909565b6149208184846148e4565b505050565b5b81811015614943576149385f8261490d565b600181019050614926565b5050565b601f821115614988576149598161483c565b6149628461484e565b81016020851015614971578190505b61498561497d8561484e565b830182614925565b50505b505050565b5f82821c905092915050565b5f6149a85f198460080261498d565b1980831691505092915050565b5f6149c08383614999565b9150826002028217905092915050565b6149d98261387f565b67ffffffffffffffff8111156149f2576149f1613e9e565b5b6149fc8254613df0565b614a07828285614947565b5f60209050601f831160018114614a38575f8415614a26578287015190505b614a3085826149b5565b865550614a97565b601f198416614a468661483c565b5f5b82811015614a6d57848901518255600182019150602085019450602081019050614a48565b86831015614a8a5784890151614a86601f891682614999565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614ad18161354b565b82525050565b5f606083015f830151614aec5f860182614332565b506020830151614aff6020860182614ac8565b5060408301518482036040860152614b1782826146d5565b9150508091505092915050565b5f614b2f8383614ad7565b905092915050565b5f602082019050919050565b5f614b4d82614a9f565b614b578185614aa9565b935083602082028501614b6985614ab9565b805f5b85811015614ba45784840389528151614b858582614b24565b9450614b9083614b37565b925060208a01995050600181019050614b6c565b50829750879550505050505092915050565b5f6020820190508181035f830152614bce8184614b43565b905092915050565b5f60408284031215614beb57614bea613f77565b5b614bf56040613f32565b90505f614c04848285016130d2565b5f830152506020614c17848285016130d2565b60208301525092915050565b5f60408284031215614c3857614c37613051565b5b5f614c4584828501614bd6565b91505092915050565b5f606082019050614c615f830186613ecb565b614c6e602083018561362a565b614c7b604083018461362a565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614ce7826130b3565b9150614cf2836130b3565b925082614d0257614d01614c83565b5b828204905092915050565b5f614d17826130b3565b9150614d22836130b3565b9250828202614d30816130b3565b91508282048414831517614d4757614d46614cb0565b5b5092915050565b5f82905092915050565b5f614d638383614d4e565b82614d6e8135613400565b92506020821015614dae57614da97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261485d565b831692505b505092915050565b5f7fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b5f614dec8383614d4e565b82614df78135614db6565b92506008821015614e3757614e327fffffffffffffffff0000000000000000000000000000000000000000000000008360080360080261485d565b831692505b505092915050565b5f8160c01b9050919050565b5f614e5582614e3f565b9050919050565b614e6d614e68826135ba565b614e4b565b82525050565b5f8160e01b9050919050565b5f614e8982614e73565b9050919050565b614ea1614e9c826136d6565b614e7f565b82525050565b5f819050919050565b614ec1614ebc826130b3565b614ea7565b82525050565b5f614ed28287614e5c565b600882019150614ee28286614e90565b600482019150614ef28285614eb0565b602082019150614f028284614192565b915081905095945050505050565b5f614f1a826130b3565b9150614f25836130b3565b9250828201905080821115614f3d57614f3c614cb0565b5b92915050565b5f819050919050565b614f5d614f5882613400565b614f43565b82525050565b5f614f6e8285614f4c565b602082019150614f7e8284614e5c565b6008820191508190509392505050565b5f614f998287614f4c565b602082019150614fa98286614e5c565b600882019150614fb98285614f4c565b602082019150614fc98284614192565b915081905095945050505050565b5f81519050614fe581613409565b92915050565b5f81519050614ff981614357565b92915050565b5f6080828403121561501457615013613f77565b5b61501e6060613f32565b90505f61502d84828501614fd7565b5f83015250602061504084828501614feb565b6020830152506040615054848285016147c4565b60408301525092915050565b5f6080828403121561507557615074613051565b5b5f61508284828501614fff565b91505092915050565b5f60608201905061509e5f8301866133ba565b6150ab60208301856133ba565b6150b8604083018461362a565b94935050505056fea2646970667358221220832b90eba63331b2acb40d8e35786ec952268846213c4537dc6b1465d8dd4f2764736f6c63430008180033",
"opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x60DC CODESIZE SUB DUP1 PUSH3 0x60DC DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x36 SWAP2 SWAP1 PUSH3 0x878 JUMP JUMPDEST DUP5 DUP5 DUP4 DUP4 DUP4 DUP4 PUSH3 0x4C PUSH3 0x2D8 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP5 DUP5 DUP2 DUP2 DUP2 DUP2 DUP14 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0xC6 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xBD SWAP2 SWAP1 PUSH3 0x94B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0xD7 DUP2 PUSH3 0x2E0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x172 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB586360400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCA5EB5E1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1AF SWAP2 SWAP1 PUSH3 0x94B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x1C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x1DA JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP PUSH3 0x1F2 PUSH3 0x3A1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xFF AND DUP4 PUSH1 0xFF AND LT ISZERO PUSH3 0x232 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1E9714B000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x242 PUSH3 0x3A1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP4 PUSH3 0x24F SWAP2 SWAP1 PUSH3 0x99F JUMP JUMPDEST PUSH1 0xA PUSH3 0x25D SWAP2 SWAP1 PUSH3 0xB2A JUMP JUMPDEST PUSH1 0xA0 DUP2 DUP2 MSTORE POP POP POP POP POP DUP2 PUSH1 0x8 SWAP1 DUP2 PUSH3 0x278 SWAP2 SWAP1 PUSH3 0xDA8 JUMP JUMPDEST POP DUP1 PUSH1 0x9 SWAP1 DUP2 PUSH3 0x28A SWAP2 SWAP1 PUSH3 0xDA8 JUMP JUMPDEST POP POP POP POP POP POP POP PUSH3 0x2CD DUP2 PUSH3 0x2A6 PUSH3 0x2D8 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xA PUSH3 0x2B4 SWAP2 SWAP1 PUSH3 0xB2A JUMP JUMPDEST DUP6 PUSH3 0x2C1 SWAP2 SWAP1 PUSH3 0xE8C JUMP JUMPDEST PUSH3 0x3A9 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP POP POP PUSH3 0xF77 JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x6 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x41C JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x413 SWAP2 SWAP1 PUSH3 0x94B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x42F PUSH0 DUP4 DUP4 PUSH3 0x433 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x487 JUMPI DUP1 PUSH1 0x7 PUSH0 DUP3 DUP3 SLOAD PUSH3 0x47A SWAP2 SWAP1 PUSH3 0xED6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH3 0x55A JUMP JUMPDEST PUSH0 PUSH1 0x5 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 PUSH3 0x514 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x50B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xF21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x5 PUSH0 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 PUSH3 0x5A3 JUMPI DUP1 PUSH1 0x7 PUSH0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH3 0x5EE JUMP JUMPDEST DUP1 PUSH1 0x5 PUSH0 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 PUSH3 0x64D SWAP2 SWAP1 PUSH3 0xF5C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH3 0x6BB DUP3 PUSH3 0x673 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x6DD JUMPI PUSH3 0x6DC PUSH3 0x683 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x6F1 PUSH3 0x65A JUMP JUMPDEST SWAP1 POP PUSH3 0x6FF DUP3 DUP3 PUSH3 0x6B0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x721 JUMPI PUSH3 0x720 PUSH3 0x683 JUMP JUMPDEST JUMPDEST PUSH3 0x72C DUP3 PUSH3 0x673 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x758 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x73B JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x779 PUSH3 0x773 DUP5 PUSH3 0x704 JUMP JUMPDEST PUSH3 0x6E6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x798 JUMPI PUSH3 0x797 PUSH3 0x66F JUMP JUMPDEST JUMPDEST PUSH3 0x7A5 DUP5 DUP3 DUP6 PUSH3 0x739 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x7C4 JUMPI PUSH3 0x7C3 PUSH3 0x66B JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x7D6 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x763 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x7F3 DUP2 PUSH3 0x7DF JUMP JUMPDEST DUP2 EQ PUSH3 0x7FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH3 0x811 DUP2 PUSH3 0x7E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x842 DUP3 PUSH3 0x817 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x854 DUP2 PUSH3 0x836 JUMP JUMPDEST DUP2 EQ PUSH3 0x85F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH3 0x872 DUP2 PUSH3 0x849 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x894 JUMPI PUSH3 0x893 PUSH3 0x663 JUMP JUMPDEST JUMPDEST PUSH0 DUP7 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8B4 JUMPI PUSH3 0x8B3 PUSH3 0x667 JUMP JUMPDEST JUMPDEST PUSH3 0x8C2 DUP9 DUP3 DUP10 ADD PUSH3 0x7AD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8E6 JUMPI PUSH3 0x8E5 PUSH3 0x667 JUMP JUMPDEST JUMPDEST PUSH3 0x8F4 DUP9 DUP3 DUP10 ADD PUSH3 0x7AD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0x907 DUP9 DUP3 DUP10 ADD PUSH3 0x801 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0x91A DUP9 DUP3 DUP10 ADD PUSH3 0x862 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH3 0x92D DUP9 DUP3 DUP10 ADD PUSH3 0x862 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH3 0x945 DUP2 PUSH3 0x836 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x960 PUSH0 DUP4 ADD DUP5 PUSH3 0x93A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH3 0x9AB DUP3 PUSH3 0x966 JUMP JUMPDEST SWAP2 POP PUSH3 0x9B8 DUP4 PUSH3 0x966 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH1 0xFF DUP2 GT ISZERO PUSH3 0x9D4 JUMPI PUSH3 0x9D3 PUSH3 0x972 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP3 SWAP2 POP DUP4 SWAP1 POP JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH3 0xA37 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH3 0xA0F JUMPI PUSH3 0xA0E PUSH3 0x972 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH3 0xA1F JUMPI DUP1 DUP3 MUL SWAP2 POP JUMPDEST DUP1 DUP2 MUL SWAP1 POP PUSH3 0xA2F DUP6 PUSH3 0x9DA JUMP JUMPDEST SWAP5 POP PUSH3 0x9EF JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH3 0xA51 JUMPI PUSH1 0x1 SWAP1 POP PUSH3 0xB23 JUMP JUMPDEST DUP2 PUSH3 0xA60 JUMPI PUSH0 SWAP1 POP PUSH3 0xB23 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH3 0xA79 JUMPI PUSH1 0x2 DUP2 EQ PUSH3 0xA84 JUMPI PUSH3 0xABA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH3 0xB23 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH3 0xA99 JUMPI PUSH3 0xA98 PUSH3 0x972 JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH3 0xAB3 JUMPI PUSH3 0xAB2 PUSH3 0x972 JUMP JUMPDEST JUMPDEST POP PUSH3 0xB23 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH3 0xAF4 JUMPI DUP3 DUP3 EXP SWAP1 POP DUP4 DUP2 GT ISZERO PUSH3 0xAEE JUMPI PUSH3 0xAED PUSH3 0x972 JUMP JUMPDEST JUMPDEST PUSH3 0xB23 JUMP JUMPDEST PUSH3 0xB03 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH3 0x9E6 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH3 0xB1D JUMPI PUSH3 0xB1C PUSH3 0x972 JUMP JUMPDEST JUMPDEST DUP2 DUP2 MUL SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0xB36 DUP3 PUSH3 0x7DF JUMP JUMPDEST SWAP2 POP PUSH3 0xB43 DUP4 PUSH3 0x966 JUMP JUMPDEST SWAP3 POP PUSH3 0xB72 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP5 PUSH3 0xA40 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 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 PUSH3 0xBC9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0xBDF JUMPI PUSH3 0xBDE PUSH3 0xB84 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 PUSH3 0xC43 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0xC06 JUMP JUMPDEST PUSH3 0xC4F DUP7 DUP4 PUSH3 0xC06 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 PUSH3 0xC90 PUSH3 0xC8A PUSH3 0xC84 DUP5 PUSH3 0x7DF JUMP JUMPDEST PUSH3 0xC67 JUMP JUMPDEST PUSH3 0x7DF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xCAB DUP4 PUSH3 0xC70 JUMP JUMPDEST PUSH3 0xCC3 PUSH3 0xCBA DUP3 PUSH3 0xC97 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0xC12 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH3 0xCD9 PUSH3 0xCCB JUMP JUMPDEST PUSH3 0xCE6 DUP2 DUP5 DUP5 PUSH3 0xCA0 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0xD0D JUMPI PUSH3 0xD01 PUSH0 DUP3 PUSH3 0xCCF JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0xCEC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0xD5C JUMPI PUSH3 0xD26 DUP2 PUSH3 0xBE5 JUMP JUMPDEST PUSH3 0xD31 DUP5 PUSH3 0xBF7 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0xD41 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0xD59 PUSH3 0xD50 DUP6 PUSH3 0xBF7 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0xCEB JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0xD7E PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0xD61 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0xD98 DUP4 DUP4 PUSH3 0xD6D JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xDB3 DUP3 PUSH3 0xB7A JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0xDCF JUMPI PUSH3 0xDCE PUSH3 0x683 JUMP JUMPDEST JUMPDEST PUSH3 0xDDB DUP3 SLOAD PUSH3 0xBB1 JUMP JUMPDEST PUSH3 0xDE8 DUP3 DUP3 DUP6 PUSH3 0xD11 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0xE1E JUMPI PUSH0 DUP5 ISZERO PUSH3 0xE09 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0xE15 DUP6 DUP3 PUSH3 0xD8B JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0xE84 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0xE2E DUP7 PUSH3 0xBE5 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0xE57 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 PUSH3 0xE30 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0xE77 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0xE73 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0xD6D 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 PUSH3 0xE98 DUP3 PUSH3 0x7DF JUMP JUMPDEST SWAP2 POP PUSH3 0xEA5 DUP4 PUSH3 0x7DF JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH3 0xEB5 DUP2 PUSH3 0x7DF JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH3 0xECF JUMPI PUSH3 0xECE PUSH3 0x972 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0xEE2 DUP3 PUSH3 0x7DF JUMP JUMPDEST SWAP2 POP PUSH3 0xEEF DUP4 PUSH3 0x7DF JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0xF0A JUMPI PUSH3 0xF09 PUSH3 0x972 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xF1B DUP2 PUSH3 0x7DF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xF36 PUSH0 DUP4 ADD DUP7 PUSH3 0x93A JUMP JUMPDEST PUSH3 0xF45 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0xF10 JUMP JUMPDEST PUSH3 0xF54 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0xF10 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0xF71 PUSH0 DUP4 ADD DUP5 PUSH3 0xF10 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x50F6 PUSH3 0xFE6 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x116D ADD MSTORE DUP2 DUP2 PUSH2 0x254B ADD MSTORE DUP2 DUP2 PUSH2 0x256C ADD MSTORE DUP2 DUP2 PUSH2 0x2610 ADD MSTORE PUSH2 0x295F ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0xC8D ADD MSTORE DUP2 DUP2 PUSH2 0xF6E ADD MSTORE DUP2 DUP2 PUSH2 0x160F ADD MSTORE DUP2 DUP2 PUSH2 0x1A59 ADD MSTORE DUP2 DUP2 PUSH2 0x1F56 ADD MSTORE DUP2 DUP2 PUSH2 0x2A59 ADD MSTORE DUP2 DUP2 PUSH2 0x2CAB ADD MSTORE PUSH2 0x2DA3 ADD MSTORE PUSH2 0x50F6 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x250 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D25A05E GT PUSH2 0x138 JUMPI DUP1 PUSH4 0xBB0B6A53 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xD045A0DC GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xD045A0DC EQ PUSH2 0x8E7 JUMPI DUP1 PUSH4 0xD4243885 EQ PUSH2 0x903 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x92B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x967 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x98F JUMPI DUP1 PUSH4 0xFF7BD03D EQ PUSH2 0x9B9 JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x7FA JUMPI DUP1 PUSH4 0xBC70B354 EQ PUSH2 0x836 JUMPI DUP1 PUSH4 0xBD815DB0 EQ PUSH2 0x872 JUMPI DUP1 PUSH4 0xC7C7F5B3 EQ PUSH2 0x88E JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x8BF JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x963EFCAA GT PUSH2 0xFC JUMPI DUP1 PUSH4 0x963EFCAA EQ PUSH2 0x718 JUMPI DUP1 PUSH4 0x9F68B964 EQ PUSH2 0x742 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x76C JUMPI DUP1 PUSH4 0xB731EA0A EQ PUSH2 0x7A8 JUMPI DUP1 PUSH4 0xB98BD070 EQ PUSH2 0x7D2 JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x7D25A05E EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x82413EAC EQ PUSH2 0x65E JUMPI DUP1 PUSH4 0x857749B0 EQ PUSH2 0x69A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6C4 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x6EE JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x5535D461 GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x5535D461 EQ PUSH2 0x506 JUMPI DUP1 PUSH4 0x5A0DFE4D EQ PUSH2 0x542 JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x57E JUMPI DUP1 PUSH4 0x6FC1B31E EQ PUSH2 0x5A8 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x60C JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0x3400288B EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x3B6F743B EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x52AE2879 EQ PUSH2 0x4DC JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x134D4F25 GT PUSH2 0x218 JUMPI DUP1 PUSH4 0x134D4F25 EQ PUSH2 0x33E JUMPI DUP1 PUSH4 0x156A0D0F EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x393 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x1F5E1334 EQ PUSH2 0x3E8 JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x27E JUMPI DUP1 PUSH4 0xD35B415 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x111ECDAD EQ PUSH2 0x2F8 JUMPI DUP1 PUSH4 0x13137D65 EQ PUSH2 0x322 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x3028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x30E6 JUMP JUMPDEST PUSH2 0xA85 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DB SWAP2 SWAP1 PUSH2 0x3179 JUMP JUMPDEST PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x337E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x3494 JUMP JUMPDEST PUSH2 0xC74 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x349 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x352 PUSH2 0xD94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35F SWAP2 SWAP1 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH2 0xD99 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38A SWAP3 SWAP2 SWAP1 PUSH2 0x35DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A7 PUSH2 0xDC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B5 SWAP3 SWAP2 SWAP1 PUSH2 0x3603 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D2 PUSH2 0xDD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DF SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FC PUSH2 0xDDD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x409 SWAP2 SWAP1 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x438 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x433 SWAP2 SWAP1 PUSH2 0x3652 JUMP JUMPDEST PUSH2 0xDE2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x445 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x462 PUSH2 0xE10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x46F SWAP2 SWAP1 PUSH2 0x36BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x483 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x370F JUMP JUMPDEST PUSH2 0xE18 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x3777 JUMP JUMPDEST PUSH2 0xE2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4D3 SWAP2 SWAP1 PUSH2 0x37FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F0 PUSH2 0xE96 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4FD SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x511 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x52C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x527 SWAP2 SWAP1 PUSH2 0x3841 JUMP JUMPDEST PUSH2 0xE9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x539 SWAP2 SWAP1 PUSH2 0x38D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x568 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x563 SWAP2 SWAP1 PUSH2 0x370F JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x575 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x589 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x592 PUSH2 0xF6C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C9 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0xF90 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5F1 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x603 SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x617 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x620 PUSH2 0x1058 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x648 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x643 SWAP2 SWAP1 PUSH2 0x370F JUMP JUMPDEST PUSH2 0x106B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x655 SWAP2 SWAP1 PUSH2 0x3990 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x669 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x684 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x67F SWAP2 SWAP1 PUSH2 0x39A9 JUMP JUMPDEST PUSH2 0x1072 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x691 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x6AE PUSH2 0x10AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0x36BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D8 PUSH2 0x10B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E5 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x702 PUSH2 0x10DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x70F SWAP2 SWAP1 PUSH2 0x3028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x723 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x72C PUSH2 0x116B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x739 SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x756 PUSH2 0x118F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x763 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x777 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x792 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x78D SWAP2 SWAP1 PUSH2 0x30E6 JUMP JUMPDEST PUSH2 0x1193 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79F SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x7BC PUSH2 0x11B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C9 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x7F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7F3 SWAP2 SWAP1 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x11DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x805 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x820 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x81B SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x11FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x3AF4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x841 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x85C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x857 SWAP2 SWAP1 PUSH2 0x3B0D JUMP JUMPDEST PUSH2 0x1210 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x869 SWAP2 SWAP1 PUSH2 0x38D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x88C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x887 SWAP2 SWAP1 PUSH2 0x3BD3 JUMP JUMPDEST PUSH2 0x1412 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x8A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8A3 SWAP2 SWAP1 PUSH2 0x3C3C JUMP JUMPDEST PUSH2 0x15DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8B6 SWAP3 SWAP2 SWAP1 PUSH2 0x3D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x8E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8E0 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0x1605 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x901 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8FC SWAP2 SWAP1 PUSH2 0x3494 JUMP JUMPDEST PUSH2 0x1696 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x929 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x924 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0x1713 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x936 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x951 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x94C SWAP2 SWAP1 PUSH2 0x3D5A JUMP JUMPDEST PUSH2 0x1795 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95E SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x972 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x98D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x988 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0x1817 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9A3 PUSH2 0x189B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9B0 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9DA SWAP2 SWAP1 PUSH2 0x3D98 JUMP JUMPDEST PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9EC SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x8 DUP1 SLOAD PUSH2 0xA04 SWAP1 PUSH2 0x3DF0 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 0xA30 SWAP1 PUSH2 0x3DF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA7B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA52 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA7B 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 0xA5E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xA8F PUSH2 0x18DF JUMP JUMPDEST SWAP1 POP PUSH2 0xA9C DUP2 DUP6 DUP6 PUSH2 0x18E6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAAF PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB9 PUSH2 0x2F23 JUMP JUMPDEST PUSH0 DUP1 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB04 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB28 SWAP2 SWAP1 PUSH2 0x3E34 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB70 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB94 SWAP2 SWAP1 PUSH2 0x3E73 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP SWAP5 POP PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBC7 JUMPI PUSH2 0xBC6 PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xC00 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBED PUSH2 0x2F3B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBE5 JUMPI SWAP1 POP JUMPDEST POP SWAP4 POP PUSH0 DUP1 PUSH2 0xC29 DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP10 PUSH1 0x60 ADD CALLDATALOAD DUP11 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC24 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x18F8 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP SWAP5 POP POP POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD04 JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0x91AC5E4F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCFB SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xD23 DUP9 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD1E SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x1957 JUMP JUMPDEST EQ PUSH2 0xD7C JUMPI DUP7 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD3A SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP8 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x40 MLOAD PUSH32 0xC26BEBCC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP3 SWAP2 SWAP1 PUSH2 0x3EDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD8B DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x19C8 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x2E49C2C00000000000000000000000000000000000000000000000000000000 PUSH1 0x1 SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH1 0x2 SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH0 PUSH1 0x7 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xDEC PUSH2 0x18DF JUMP JUMPDEST SWAP1 POP PUSH2 0xDF9 DUP6 DUP3 DUP6 PUSH2 0x1B52 JUMP JUMPDEST PUSH2 0xE04 DUP6 DUP6 DUP6 PUSH2 0x1BE5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE20 PUSH2 0x1CD5 JUMP JUMPDEST PUSH2 0xE2A DUP3 DUP3 PUSH2 0x1D5C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE36 PUSH2 0x2F54 JUMP JUMPDEST PUSH0 PUSH2 0xE5B DUP5 PUSH1 0x40 ADD CALLDATALOAD DUP6 PUSH1 0x60 ADD CALLDATALOAD DUP7 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE56 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x18F8 JUMP JUMPDEST SWAP2 POP POP PUSH0 DUP1 PUSH2 0xE6A DUP7 DUP5 PUSH2 0x1DBB JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xE8B DUP7 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE83 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP4 DUP4 DUP9 PUSH2 0x1F4C JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 ADDRESS SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP2 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP2 POP POP DUP1 SLOAD PUSH2 0xEC4 SWAP1 PUSH2 0x3DF0 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 0xEF0 SWAP1 PUSH2 0x3DF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF3B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF12 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF3B 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 0xF1E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH0 DUP6 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0xF98 PUSH2 0x1CD5 JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xF0BE4F1E87349231D80C36B33F9E8639658EEAF474014DEE15A3E6A4D4414197 DUP2 PUSH1 0x40 MLOAD PUSH2 0x1007 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 PUSH1 0x5 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 PUSH2 0x1060 PUSH2 0x1CD5 JUMP JUMPDEST PUSH2 0x1069 PUSH0 PUSH2 0x202D JUMP JUMPDEST JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x6 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x9 DUP1 SLOAD PUSH2 0x10EA SWAP1 PUSH2 0x3DF0 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 0x1116 SWAP1 PUSH2 0x3DF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1161 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1138 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1161 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 0x1144 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x119D PUSH2 0x18DF JUMP JUMPDEST SWAP1 POP PUSH2 0x11AA DUP2 DUP6 DUP6 PUSH2 0x1BE5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x11E2 PUSH2 0x1CD5 JUMP JUMPDEST PUSH2 0x11F7 DUP3 DUP3 SWAP1 PUSH2 0x11F2 SWAP2 SWAP1 PUSH2 0x4132 JUMP JUMPDEST PUSH2 0x20EE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH1 0x3 PUSH0 DUP8 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP7 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP1 SLOAD PUSH2 0x1252 SWAP1 PUSH2 0x3DF0 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 0x127E SWAP1 PUSH2 0x3DF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x12A0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x12C9 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 0x12AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH0 DUP2 MLOAD SUB PUSH2 0x1324 JUMPI DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 POP POP PUSH2 0x140A JUMP JUMPDEST PUSH0 DUP5 DUP5 SWAP1 POP SUB PUSH2 0x1337 JUMPI DUP1 SWAP2 POP POP PUSH2 0x140A JUMP JUMPDEST PUSH1 0x2 DUP5 DUP5 SWAP1 POP LT PUSH2 0x13CB JUMPI PUSH2 0x138E DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x2203 JUMP JUMPDEST DUP1 DUP5 DUP5 PUSH1 0x2 SWAP1 DUP1 SWAP3 PUSH2 0x13A2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x414E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x13B4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x41E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP PUSH2 0x140A JUMP JUMPDEST DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x9A6D49CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1401 SWAP3 SWAP2 SWAP1 PUSH2 0x4237 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP3 SWAP1 POP DUP2 LT ISZERO PUSH2 0x1531 JUMPI CALLDATASIZE DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x1433 JUMPI PUSH2 0x1432 PUSH2 0x4259 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1445 SWAP2 SWAP1 PUSH2 0x4292 JUMP JUMPDEST SWAP1 POP PUSH2 0x146A DUP2 PUSH0 ADD PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x145E SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP3 PUSH0 ADD PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x1474 JUMPI POP PUSH2 0x1524 JUMP JUMPDEST ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD045A0DC DUP3 PUSH1 0xC0 ADD CALLDATALOAD DUP4 PUSH0 ADD DUP5 PUSH1 0xA0 ADD CALLDATALOAD DUP6 DUP1 PUSH2 0x100 ADD SWAP1 PUSH2 0x14AE SWAP2 SWAP1 PUSH2 0x42BA JUMP JUMPDEST DUP8 PUSH1 0xE0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x14C1 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST DUP9 DUP1 PUSH2 0x120 ADD SWAP1 PUSH2 0x14D2 SWAP2 SWAP1 PUSH2 0x42BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP10 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14F4 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43EF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x150B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x151D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1414 JUMP JUMPDEST POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x8E9E7099 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x157A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A2 SWAP2 SWAP1 PUSH2 0x44C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8351EEA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15D5 SWAP2 SWAP1 PUSH2 0x38D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15E6 PUSH2 0x2F6C JUMP JUMPDEST PUSH2 0x15EE PUSH2 0x2F23 JUMP JUMPDEST PUSH2 0x15F9 DUP6 DUP6 DUP6 PUSH2 0x225C JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x160D PUSH2 0x1CD5 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCA5EB5E1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1666 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x167D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x168F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x14D4A4E800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x170A DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2361 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x171B PUSH2 0x1CD5 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xD48D879CEF83A1C0BDDA516F27B13DDB1B3F8BBAC1C9E1511BB2A659C2427760 DUP2 PUSH1 0x40 MLOAD PUSH2 0x178A SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 PUSH1 0x6 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 PUSH2 0x181F PUSH2 0x1CD5 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x188F JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1886 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1898 DUP2 PUSH2 0x202D JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 ADDRESS SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH0 DUP5 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x18BD SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x18F3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2379 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x1903 DUP6 PUSH2 0x2548 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x194F JUMPI DUP1 DUP5 PUSH1 0x40 MLOAD PUSH32 0x71C4EFED00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1946 SWAP3 SWAP2 SWAP1 PUSH2 0x4507 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 DUP5 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x19BF JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xF6FF4FB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19B6 SWAP2 SWAP1 PUSH2 0x452E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19DB PUSH2 0x19D6 DUP8 DUP8 PUSH2 0x25A7 JUMP JUMPDEST PUSH2 0x25D1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1A0B DUP3 PUSH2 0x19F4 PUSH2 0x19EF DUP11 DUP11 PUSH2 0x25DC JUMP JUMPDEST PUSH2 0x260D JUMP JUMPDEST DUP12 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1A06 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x264B JUMP JUMPDEST SWAP1 POP PUSH2 0x1A17 DUP8 DUP8 PUSH2 0x2699 JUMP JUMPDEST ISZERO PUSH2 0x1AE5 JUMPI PUSH0 PUSH2 0x1A55 DUP11 PUSH1 0x40 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1A33 SWAP2 SWAP1 PUSH2 0x4547 JUMP JUMPDEST DUP12 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1A45 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP5 PUSH2 0x1A50 DUP13 DUP13 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0x270E JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x7CB59012 DUP5 DUP12 PUSH0 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AB6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x45AB JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ACD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH32 0xEFED6D3500546B29533B128A29E3A94D70788727F0507505AC12EAF2E578FD9C DUP12 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1B30 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP5 PUSH1 0x40 MLOAD PUSH2 0x1B3F SWAP3 SWAP2 SWAP1 PUSH2 0x45F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B5D DUP5 DUP5 PUSH2 0x1795 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x1BDF JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1BD0 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BC7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x461C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BDE DUP5 DUP5 DUP5 DUP5 SUB PUSH0 PUSH2 0x2379 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1C55 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C4C SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CC5 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBC SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1CD0 DUP4 DUP4 DUP4 PUSH2 0x2740 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1CDD PUSH2 0x18DF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CFB PUSH2 0x10B4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1D5A JUMPI PUSH2 0x1D1E PUSH2 0x18DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D51 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP5 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1DAF SWAP3 SWAP2 SWAP1 PUSH2 0x3EDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH0 PUSH2 0x1E27 DUP6 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1DD0 DUP7 PUSH2 0x295C JUMP JUMPDEST DUP8 DUP1 PUSH1 0xA0 ADD SWAP1 PUSH2 0x1DE0 SWAP2 SWAP1 PUSH2 0x42BA JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x2990 JUMP JUMPDEST DUP1 SWAP3 POP DUP2 SWAP5 POP POP POP PUSH0 DUP2 PUSH2 0x1E3C JUMPI PUSH1 0x1 PUSH2 0x1E3F JUMP JUMPDEST PUSH1 0x2 JUMPDEST SWAP1 POP PUSH2 0x1E6C DUP7 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1E56 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP3 DUP9 DUP1 PUSH1 0x80 ADD SWAP1 PUSH2 0x1E67 SWAP2 SWAP1 PUSH2 0x42BA JUMP JUMPDEST PUSH2 0x1210 JUMP JUMPDEST SWAP3 POP PUSH0 PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F42 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x43A78EB DUP7 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F01 SWAP3 SWAP2 SWAP1 PUSH2 0x4651 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F40 SWAP2 SWAP1 PUSH2 0x469A JUMP JUMPDEST POP JUMPDEST POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F54 PUSH2 0x2F54 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDDC28C58 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FB0 DUP10 PUSH2 0x1957 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE5 SWAP3 SWAP2 SWAP1 PUSH2 0x4796 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FFF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2023 SWAP2 SWAP1 PUSH2 0x4811 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x21C8 JUMPI PUSH2 0x2120 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x210F JUMPI PUSH2 0x210E PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH2 0x2203 JUMP JUMPDEST DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x2133 JUMPI PUSH2 0x2132 PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x3 PUSH0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x2155 JUMPI PUSH2 0x2154 PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x218D JUMPI PUSH2 0x218C PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SWAP1 DUP2 PUSH2 0x21BA SWAP2 SWAP1 PUSH2 0x49D0 JUMP JUMPDEST POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x20F0 JUMP JUMPDEST POP PUSH32 0xBE4864A8E820971C0247F5992E2DA559595F7BF076A21CB5928D443D2A13B674 DUP2 PUSH1 0x40 MLOAD PUSH2 0x21F8 SWAP2 SWAP1 PUSH2 0x4BB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP3 ADD MLOAD SWAP1 POP PUSH1 0x3 PUSH2 0xFFFF AND DUP2 PUSH2 0xFFFF AND EQ PUSH2 0x2258 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x9A6D49CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x224F SWAP2 SWAP1 PUSH2 0x38D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2264 PUSH2 0x2F6C JUMP JUMPDEST PUSH2 0x226C PUSH2 0x2F23 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x2293 CALLER DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP10 PUSH1 0x60 ADD CALLDATALOAD DUP11 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x228E SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x29FE JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP1 PUSH2 0x22A3 DUP10 DUP5 PUSH2 0x1DBB JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x22D5 DUP10 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x22BC SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP4 DUP4 DUP12 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22CF SWAP2 SWAP1 PUSH2 0x4C23 JUMP JUMPDEST DUP12 PUSH2 0x2A26 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP5 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH0 ADD MLOAD PUSH32 0x85496B760A4B7F8D66384B9DF21B381F5D1B1E79F229A47AAF4C232EDC2FE59A DUP12 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x233C SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x234D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2370 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x19C8 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x23E9 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23E0 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2459 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2450 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x6 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 0x2542 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2539 SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH32 0x0 DUP4 PUSH2 0x2596 SWAP2 SWAP1 PUSH2 0x4CDD JUMP JUMPDEST PUSH2 0x25A0 SWAP2 SWAP1 PUSH2 0x4D0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH0 SWAP1 PUSH1 0x20 PUSH1 0xFF AND SWAP3 PUSH2 0x25BE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x414E JUMP JUMPDEST SWAP1 PUSH2 0x25C9 SWAP2 SWAP1 PUSH2 0x4D58 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH1 0x20 PUSH1 0xFF AND SWAP1 PUSH1 0x28 PUSH1 0xFF AND SWAP3 PUSH2 0x25F7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x414E JUMP JUMPDEST SWAP1 PUSH2 0x2602 SWAP2 SWAP1 PUSH2 0x4DE1 JUMP JUMPDEST PUSH1 0xC0 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x2644 SWAP2 SWAP1 PUSH2 0x4D0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2685 JUMPI PUSH2 0xDEAD SWAP4 POP JUMPDEST PUSH2 0x268F DUP5 DUP5 PUSH2 0x2B3C JUMP JUMPDEST DUP3 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x28 PUSH1 0xFF AND DUP4 DUP4 SWAP1 POP GT SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH1 0x28 PUSH1 0xFF AND SWAP1 DUP1 SWAP3 PUSH2 0x26C4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x414E JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2727 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4EC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2790 JUMPI DUP1 PUSH1 0x7 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2784 SWAP2 SWAP1 PUSH2 0x4F10 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x2860 JUMP JUMPDEST PUSH0 PUSH1 0x5 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 0x281A JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2811 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x461C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x5 PUSH0 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 0x28A7 JUMPI DUP1 PUSH1 0x7 PUSH0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x28F2 JUMP JUMPDEST DUP1 PUSH1 0x5 PUSH0 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 0x294F SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 DUP3 PUSH2 0x2989 SWAP2 SWAP1 PUSH2 0x4CDD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP1 DUP4 MLOAD GT SWAP1 POP DUP1 PUSH2 0x29C5 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x29B1 SWAP3 SWAP2 SWAP1 PUSH2 0x4F63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x29F4 JUMP JUMPDEST DUP5 DUP5 PUSH2 0x29D0 CALLER PUSH2 0x2BBB JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x29E4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4F8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x2A0B DUP6 DUP6 DUP6 PUSH2 0x18F8 JUMP JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH2 0x2A1D DUP7 DUP4 PUSH2 0x2BDC JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2A2E PUSH2 0x2F6C JUMP JUMPDEST PUSH0 PUSH2 0x2A3B DUP5 PUSH0 ADD MLOAD PUSH2 0x2C5B JUMP JUMPDEST SWAP1 POP PUSH0 DUP5 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x2A57 JUMPI PUSH2 0x2A56 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2CA8 JUMP JUMPDEST JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2637A450 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP12 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2AB4 DUP13 PUSH2 0x1957 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP10 PUSH1 0x20 ADD MLOAD GT ISZERO ISZERO DUP2 MSTORE POP DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AEF SWAP3 SWAP2 SWAP1 PUSH2 0x4796 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B0B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B30 SWAP2 SWAP1 PUSH2 0x5060 JUMP JUMPDEST SWAP2 POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2BAC JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BA3 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2BB7 PUSH0 DUP4 DUP4 PUSH2 0x2740 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2C4C JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C43 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C57 DUP3 PUSH0 DUP4 PUSH2 0x2740 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 CALLVALUE EQ PUSH2 0x2CA0 JUMPI CALLVALUE PUSH1 0x40 MLOAD PUSH32 0x9F70412000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C97 SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE4FE1D94 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D12 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D36 SWAP2 SWAP1 PUSH2 0x3E34 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2D9D JUMPI PUSH1 0x40 MLOAD PUSH32 0x5373352A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2DEA CALLER PUSH32 0x0 DUP5 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2DEE SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2E6A DUP5 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2E23 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x508B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2E70 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 PUSH0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH0 DUP9 GAS CALL DUP1 PUSH2 0x2E8F JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST RETURNDATASIZE SWAP3 POP PUSH0 MLOAD SWAP2 POP POP PUSH0 DUP3 EQ PUSH2 0x2EA8 JUMPI PUSH1 0x1 DUP2 EQ ISZERO PUSH2 0x2EC3 JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x2F05 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x5274AFE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EFC SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2F98 PUSH2 0x2F54 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 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 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2FBA JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2FFA DUP3 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x3004 DUP2 DUP6 PUSH2 0x2FA8 JUMP JUMPDEST SWAP4 POP PUSH2 0x3014 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST PUSH2 0x301D DUP2 PUSH2 0x2FE0 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 0x3040 DUP2 DUP5 PUSH2 0x2FF0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3082 DUP3 PUSH2 0x3059 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3092 DUP2 PUSH2 0x3078 JUMP JUMPDEST DUP2 EQ PUSH2 0x309C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x30AD DUP2 PUSH2 0x3089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x30C5 DUP2 PUSH2 0x30B3 JUMP JUMPDEST DUP2 EQ PUSH2 0x30CF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x30E0 DUP2 PUSH2 0x30BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x30FC JUMPI PUSH2 0x30FB PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3109 DUP6 DUP3 DUP7 ADD PUSH2 0x309F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x311A DUP6 DUP3 DUP7 ADD PUSH2 0x30D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3138 DUP2 PUSH2 0x3124 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3151 PUSH0 DUP4 ADD DUP5 PUSH2 0x312F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0xE0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3170 JUMPI PUSH2 0x316F PUSH2 0x3157 JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x318E JUMPI PUSH2 0x318D PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x31AB JUMPI PUSH2 0x31AA PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x31B7 DUP5 DUP3 DUP6 ADD PUSH2 0x315B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x31C9 DUP2 PUSH2 0x30B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x31E3 PUSH0 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x31F6 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP 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 PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3237 DUP2 PUSH2 0x3225 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3257 DUP3 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x3261 DUP2 DUP6 PUSH2 0x323D JUMP JUMPDEST SWAP4 POP PUSH2 0x3271 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST PUSH2 0x327A DUP2 PUSH2 0x2FE0 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x329A PUSH0 DUP7 ADD DUP3 PUSH2 0x322E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x32B2 DUP3 DUP3 PUSH2 0x324D JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32CA DUP4 DUP4 PUSH2 0x3285 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x32E8 DUP3 PUSH2 0x31FC JUMP JUMPDEST PUSH2 0x32F2 DUP2 DUP6 PUSH2 0x3206 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3304 DUP6 PUSH2 0x3216 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x333F JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x3320 DUP6 DUP3 PUSH2 0x32BF JUMP JUMPDEST SWAP5 POP PUSH2 0x332B DUP4 PUSH2 0x32D2 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3307 JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x3365 PUSH0 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3378 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3391 PUSH0 DUP4 ADD DUP7 PUSH2 0x31CF JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x33A3 DUP2 DUP6 PUSH2 0x32DE JUMP JUMPDEST SWAP1 POP PUSH2 0x33B2 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3351 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x33C3 DUP2 PUSH2 0x3078 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x33DC PUSH0 DUP4 ADD DUP5 PUSH2 0x33BA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33F7 JUMPI PUSH2 0x33F6 PUSH2 0x3157 JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3412 DUP2 PUSH2 0x3400 JUMP JUMPDEST DUP2 EQ PUSH2 0x341C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x342D DUP2 PUSH2 0x3409 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3454 JUMPI PUSH2 0x3453 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3471 JUMPI PUSH2 0x3470 PUSH2 0x3437 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x348D JUMPI PUSH2 0x348C PUSH2 0x343B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x34AF JUMPI PUSH2 0x34AE PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x34BC DUP11 DUP3 DUP12 ADD PUSH2 0x33E2 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x34CD DUP11 DUP3 DUP12 ADD PUSH2 0x341F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x34EE JUMPI PUSH2 0x34ED PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x34FA DUP11 DUP3 DUP12 ADD PUSH2 0x343F JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0xA0 PUSH2 0x350D DUP11 DUP3 DUP12 ADD PUSH2 0x309F JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x352E JUMPI PUSH2 0x352D PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x353A DUP11 DUP3 DUP12 ADD PUSH2 0x343F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3561 DUP2 PUSH2 0x354B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x357A PUSH0 DUP4 ADD DUP5 PUSH2 0x3558 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x35B4 DUP2 PUSH2 0x3580 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x35D6 DUP2 PUSH2 0x35BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x35EF PUSH0 DUP4 ADD DUP6 PUSH2 0x35AB JUMP JUMPDEST PUSH2 0x35FC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x35CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3616 PUSH0 DUP4 ADD DUP6 PUSH2 0x35CD JUMP JUMPDEST PUSH2 0x3623 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x35CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3633 DUP2 PUSH2 0x30B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x364C PUSH0 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3669 JUMPI PUSH2 0x3668 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3676 DUP7 DUP3 DUP8 ADD PUSH2 0x309F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3687 DUP7 DUP3 DUP8 ADD PUSH2 0x309F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3698 DUP7 DUP3 DUP8 ADD PUSH2 0x30D2 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 0x36B7 DUP2 PUSH2 0x36A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x36D0 PUSH0 DUP4 ADD DUP5 PUSH2 0x36AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x36EE DUP2 PUSH2 0x36D6 JUMP JUMPDEST DUP2 EQ PUSH2 0x36F8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3709 DUP2 PUSH2 0x36E5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3725 JUMPI PUSH2 0x3724 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3732 DUP6 DUP3 DUP7 ADD PUSH2 0x36FB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3743 DUP6 DUP3 DUP7 ADD PUSH2 0x341F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3756 DUP2 PUSH2 0x3124 JUMP JUMPDEST DUP2 EQ PUSH2 0x3760 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3771 DUP2 PUSH2 0x374D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x378D JUMPI PUSH2 0x378C PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37AA JUMPI PUSH2 0x37A9 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x37B6 DUP6 DUP3 DUP7 ADD PUSH2 0x315B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x37C7 DUP6 DUP3 DUP7 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x37E5 PUSH0 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x37F8 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3811 PUSH0 DUP4 ADD DUP5 PUSH2 0x37D1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3820 DUP2 PUSH2 0x354B JUMP JUMPDEST DUP2 EQ PUSH2 0x382A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x383B DUP2 PUSH2 0x3817 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3857 JUMPI PUSH2 0x3856 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3864 DUP6 DUP3 DUP7 ADD PUSH2 0x36FB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3875 DUP6 DUP3 DUP7 ADD PUSH2 0x382D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH0 PUSH2 0x38A3 DUP3 PUSH2 0x387F JUMP JUMPDEST PUSH2 0x38AD DUP2 DUP6 PUSH2 0x3889 JUMP JUMPDEST SWAP4 POP PUSH2 0x38BD DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST PUSH2 0x38C6 DUP2 PUSH2 0x2FE0 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 0x38E9 DUP2 DUP5 PUSH2 0x3899 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3914 PUSH2 0x390F PUSH2 0x390A DUP5 PUSH2 0x3059 JUMP JUMPDEST PUSH2 0x38F1 JUMP JUMPDEST PUSH2 0x3059 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3925 DUP3 PUSH2 0x38FA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3936 DUP3 PUSH2 0x391B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3946 DUP2 PUSH2 0x392C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x395F PUSH0 DUP4 ADD DUP5 PUSH2 0x393D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x397A JUMPI PUSH2 0x3979 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3987 DUP5 DUP3 DUP6 ADD PUSH2 0x309F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x39A3 PUSH0 DUP4 ADD DUP5 PUSH2 0x35CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x39C1 JUMPI PUSH2 0x39C0 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x39CE DUP8 DUP3 DUP9 ADD PUSH2 0x33E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x39EF JUMPI PUSH2 0x39EE PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x39FB DUP8 DUP3 DUP9 ADD PUSH2 0x343F JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x80 PUSH2 0x3A0E DUP8 DUP3 DUP9 ADD PUSH2 0x309F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3A2F JUMPI PUSH2 0x3A2E PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A4C JUMPI PUSH2 0x3A4B PUSH2 0x3437 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3A68 JUMPI PUSH2 0x3A67 PUSH2 0x343B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A85 JUMPI PUSH2 0x3A84 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3AA2 JUMPI PUSH2 0x3AA1 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x3AAE DUP6 DUP3 DUP7 ADD PUSH2 0x3A1A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3ACF JUMPI PUSH2 0x3ACE PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3ADC DUP5 DUP3 DUP6 ADD PUSH2 0x36FB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3AEE DUP2 PUSH2 0x3400 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3B07 PUSH0 DUP4 ADD DUP5 PUSH2 0x3AE5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3B25 JUMPI PUSH2 0x3B24 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3B32 DUP8 DUP3 DUP9 ADD PUSH2 0x36FB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x3B43 DUP8 DUP3 DUP9 ADD PUSH2 0x382D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B64 JUMPI PUSH2 0x3B63 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x3B70 DUP8 DUP3 DUP9 ADD PUSH2 0x343F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3B93 JUMPI PUSH2 0x3B92 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BB0 JUMPI PUSH2 0x3BAF PUSH2 0x3437 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3BCC JUMPI PUSH2 0x3BCB PUSH2 0x343B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3BE9 JUMPI PUSH2 0x3BE8 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C06 JUMPI PUSH2 0x3C05 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x3C12 DUP6 DUP3 DUP7 ADD PUSH2 0x3B7E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C33 JUMPI PUSH2 0x3C32 PUSH2 0x3157 JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3C53 JUMPI PUSH2 0x3C52 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C70 JUMPI PUSH2 0x3C6F PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x3C7C DUP7 DUP3 DUP8 ADD PUSH2 0x315B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3C8D DUP7 DUP3 DUP8 ADD PUSH2 0x3C1E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x3C9E DUP7 DUP3 DUP8 ADD PUSH2 0x309F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x3CB1 DUP2 PUSH2 0x3400 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3CC0 DUP2 PUSH2 0x35BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x3CDA PUSH0 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3CED PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x3D07 PUSH0 DUP6 ADD DUP3 PUSH2 0x3CA8 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3D1A PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3CB7 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x3D2D PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3CC6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH2 0x3D46 PUSH0 DUP4 ADD DUP6 PUSH2 0x3CF3 JUMP JUMPDEST PUSH2 0x3D53 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3351 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D70 JUMPI PUSH2 0x3D6F PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3D7D DUP6 DUP3 DUP7 ADD PUSH2 0x309F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3D8E DUP6 DUP3 DUP7 ADD PUSH2 0x309F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DAD JUMPI PUSH2 0x3DAC PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3DBA DUP5 DUP3 DUP6 ADD PUSH2 0x33E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP 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 0x3E07 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3E1A JUMPI PUSH2 0x3E19 PUSH2 0x3DC3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x3E2E DUP2 PUSH2 0x3089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E49 JUMPI PUSH2 0x3E48 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3E56 DUP5 DUP3 DUP6 ADD PUSH2 0x3E20 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x3E6D DUP2 PUSH2 0x30BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E88 JUMPI PUSH2 0x3E87 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3E95 DUP5 DUP3 DUP6 ADD PUSH2 0x3E5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x3ED4 DUP2 PUSH2 0x36D6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3EED PUSH0 DUP4 ADD DUP6 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x3EFA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AE5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3F0A DUP3 PUSH2 0x2FE0 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3F29 JUMPI PUSH2 0x3F28 PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3F3B PUSH2 0x3048 JUMP JUMPDEST SWAP1 POP PUSH2 0x3F47 DUP3 DUP3 PUSH2 0x3F01 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3F66 JUMPI PUSH2 0x3F65 PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3F9D JUMPI PUSH2 0x3F9C PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST PUSH2 0x3FA6 DUP3 PUSH2 0x2FE0 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3FD3 PUSH2 0x3FCE DUP5 PUSH2 0x3F83 JUMP JUMPDEST PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x3FEF JUMPI PUSH2 0x3FEE PUSH2 0x3F7F JUMP JUMPDEST JUMPDEST PUSH2 0x3FFA DUP5 DUP3 DUP6 PUSH2 0x3FB3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4016 JUMPI PUSH2 0x4015 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4026 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3FC1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4044 JUMPI PUSH2 0x4043 PUSH2 0x3F77 JUMP JUMPDEST JUMPDEST PUSH2 0x404E PUSH1 0x60 PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x405D DUP5 DUP3 DUP6 ADD PUSH2 0x36FB JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x4070 DUP5 DUP3 DUP6 ADD PUSH2 0x382D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4094 JUMPI PUSH2 0x4093 PUSH2 0x3F7B JUMP JUMPDEST JUMPDEST PUSH2 0x40A0 DUP5 DUP3 DUP6 ADD PUSH2 0x4002 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40BE PUSH2 0x40B9 DUP5 PUSH2 0x3F4C JUMP JUMPDEST PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x40E1 JUMPI PUSH2 0x40E0 PUSH2 0x343B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4128 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4106 JUMPI PUSH2 0x4105 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x4113 DUP10 DUP3 PUSH2 0x402F JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x40E3 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x413E CALLDATASIZE DUP5 DUP5 PUSH2 0x40AC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x4161 JUMPI PUSH2 0x4160 PUSH2 0x4146 JUMP JUMPDEST JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x4172 JUMPI PUSH2 0x4171 PUSH2 0x414A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 MUL DUP4 ADD SWAP2 POP DUP5 DUP7 SUB SWAP1 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x419C DUP3 PUSH2 0x387F JUMP JUMPDEST PUSH2 0x41A6 DUP2 DUP6 PUSH2 0x4188 JUMP JUMPDEST SWAP4 POP PUSH2 0x41B6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x41CD DUP4 DUP6 PUSH2 0x4188 JUMP JUMPDEST SWAP4 POP PUSH2 0x41DA DUP4 DUP6 DUP5 PUSH2 0x3FB3 JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x41F1 DUP3 DUP7 PUSH2 0x4192 JUMP JUMPDEST SWAP2 POP PUSH2 0x41FE DUP3 DUP5 DUP7 PUSH2 0x41C2 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4216 DUP4 DUP6 PUSH2 0x3889 JUMP JUMPDEST SWAP4 POP PUSH2 0x4223 DUP4 DUP6 DUP5 PUSH2 0x3FB3 JUMP JUMPDEST PUSH2 0x422C DUP4 PUSH2 0x2FE0 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x4250 DUP2 DUP5 DUP7 PUSH2 0x420B JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP3 CALLDATALOAD PUSH1 0x1 PUSH2 0x140 SUB DUP4 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x42AE JUMPI PUSH2 0x42AD PUSH2 0x4286 JUMP JUMPDEST JUMPDEST DUP1 DUP4 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x42D6 JUMPI PUSH2 0x42D5 PUSH2 0x4286 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x42F8 JUMPI PUSH2 0x42F7 PUSH2 0x428A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x4314 JUMPI PUSH2 0x4313 PUSH2 0x428E JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x432A PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x36FB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x433B DUP2 PUSH2 0x36D6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x434F PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x341F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4360 DUP2 PUSH2 0x35BA JUMP JUMPDEST DUP2 EQ PUSH2 0x436A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x437B DUP2 PUSH2 0x4357 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x438F PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x436D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 ADD PUSH2 0x43A7 PUSH0 DUP4 ADD DUP4 PUSH2 0x431C JUMP JUMPDEST PUSH2 0x43B3 PUSH0 DUP6 ADD DUP3 PUSH2 0x4332 JUMP JUMPDEST POP PUSH2 0x43C1 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x4341 JUMP JUMPDEST PUSH2 0x43CE PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3CA8 JUMP JUMPDEST POP PUSH2 0x43DC PUSH1 0x40 DUP4 ADD DUP4 PUSH2 0x4381 JUMP JUMPDEST PUSH2 0x43E9 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3CB7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP PUSH2 0x4402 PUSH0 DUP4 ADD DUP11 PUSH2 0x4397 JUMP JUMPDEST PUSH2 0x440F PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x3AE5 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x4422 DUP2 DUP8 DUP10 PUSH2 0x420B JUMP JUMPDEST SWAP1 POP PUSH2 0x4431 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x33BA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x4444 DUP2 DUP5 DUP7 PUSH2 0x420B JUMP JUMPDEST SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4464 PUSH2 0x445F DUP5 PUSH2 0x3F83 JUMP JUMPDEST PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4480 JUMPI PUSH2 0x447F PUSH2 0x3F7F JUMP JUMPDEST JUMPDEST PUSH2 0x448B DUP5 DUP3 DUP6 PUSH2 0x2FB8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x44A7 JUMPI PUSH2 0x44A6 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x44B7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4452 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44D5 JUMPI PUSH2 0x44D4 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44F2 JUMPI PUSH2 0x44F1 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x44FE DUP5 DUP3 DUP6 ADD PUSH2 0x4493 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x451A PUSH0 DUP4 ADD DUP6 PUSH2 0x362A JUMP JUMPDEST PUSH2 0x4527 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4541 PUSH0 DUP4 ADD DUP5 PUSH2 0x3ECB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x455C JUMPI PUSH2 0x455B PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4569 DUP5 DUP3 DUP6 ADD PUSH2 0x436D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4595 PUSH2 0x4590 PUSH2 0x458B DUP5 PUSH2 0x4572 JUMP JUMPDEST PUSH2 0x38F1 JUMP JUMPDEST PUSH2 0x354B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45A5 DUP2 PUSH2 0x457B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x45BE PUSH0 DUP4 ADD DUP8 PUSH2 0x33BA JUMP JUMPDEST PUSH2 0x45CB PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3AE5 JUMP JUMPDEST PUSH2 0x45D8 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x459C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x45EA DUP2 DUP5 PUSH2 0x3899 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4608 PUSH0 DUP4 ADD DUP6 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x4615 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x462F PUSH0 DUP4 ADD DUP7 PUSH2 0x33BA JUMP JUMPDEST PUSH2 0x463C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x362A JUMP JUMPDEST PUSH2 0x4649 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x4669 DUP2 DUP6 PUSH2 0x3899 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x467D DUP2 DUP5 PUSH2 0x3899 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x4694 DUP2 PUSH2 0x374D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46AF JUMPI PUSH2 0x46AE PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x46BC DUP5 DUP3 DUP6 ADD PUSH2 0x4686 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x46DF DUP3 PUSH2 0x387F JUMP JUMPDEST PUSH2 0x46E9 DUP2 DUP6 PUSH2 0x46C5 JUMP JUMPDEST SWAP4 POP PUSH2 0x46F9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST PUSH2 0x4702 DUP2 PUSH2 0x2FE0 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4716 DUP2 PUSH2 0x3124 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x4731 PUSH0 DUP7 ADD DUP3 PUSH2 0x4332 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x4744 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x3CA8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x475C DUP3 DUP3 PUSH2 0x46D5 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x4776 DUP3 DUP3 PUSH2 0x46D5 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x478B PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0x470D JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x47AE DUP2 DUP6 PUSH2 0x471C JUMP JUMPDEST SWAP1 POP PUSH2 0x47BD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x33BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x47D9 JUMPI PUSH2 0x47D8 PUSH2 0x3F77 JUMP JUMPDEST JUMPDEST PUSH2 0x47E3 PUSH1 0x40 PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x47F2 DUP5 DUP3 DUP6 ADD PUSH2 0x3E5F JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x4805 DUP5 DUP3 DUP6 ADD PUSH2 0x3E5F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4826 JUMPI PUSH2 0x4825 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4833 DUP5 DUP3 DUP6 ADD PUSH2 0x47C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP 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 0x4898 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x485D JUMP JUMPDEST PUSH2 0x48A2 DUP7 DUP4 PUSH2 0x485D 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 PUSH2 0x48D4 PUSH2 0x48CF PUSH2 0x48CA DUP5 PUSH2 0x30B3 JUMP JUMPDEST PUSH2 0x38F1 JUMP JUMPDEST PUSH2 0x30B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x48ED DUP4 PUSH2 0x48BA JUMP JUMPDEST PUSH2 0x4901 PUSH2 0x48F9 DUP3 PUSH2 0x48DB JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x4869 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x4915 PUSH2 0x4909 JUMP JUMPDEST PUSH2 0x4920 DUP2 DUP5 DUP5 PUSH2 0x48E4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4943 JUMPI PUSH2 0x4938 PUSH0 DUP3 PUSH2 0x490D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4926 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x4988 JUMPI PUSH2 0x4959 DUP2 PUSH2 0x483C JUMP JUMPDEST PUSH2 0x4962 DUP5 PUSH2 0x484E JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4971 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x4985 PUSH2 0x497D DUP6 PUSH2 0x484E JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x4925 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x49A8 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x498D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x49C0 DUP4 DUP4 PUSH2 0x4999 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x49D9 DUP3 PUSH2 0x387F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x49F2 JUMPI PUSH2 0x49F1 PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST PUSH2 0x49FC DUP3 SLOAD PUSH2 0x3DF0 JUMP JUMPDEST PUSH2 0x4A07 DUP3 DUP3 DUP6 PUSH2 0x4947 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4A38 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x4A26 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x4A30 DUP6 DUP3 PUSH2 0x49B5 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x4A97 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x4A46 DUP7 PUSH2 0x483C JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4A6D 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 0x4A48 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4A8A JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x4A86 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x4999 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 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 PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4AD1 DUP2 PUSH2 0x354B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x4AEC PUSH0 DUP7 ADD DUP3 PUSH2 0x4332 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x4AFF PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x4AC8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x4B17 DUP3 DUP3 PUSH2 0x46D5 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4B2F DUP4 DUP4 PUSH2 0x4AD7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4B4D DUP3 PUSH2 0x4A9F JUMP JUMPDEST PUSH2 0x4B57 DUP2 DUP6 PUSH2 0x4AA9 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x4B69 DUP6 PUSH2 0x4AB9 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4BA4 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x4B85 DUP6 DUP3 PUSH2 0x4B24 JUMP JUMPDEST SWAP5 POP PUSH2 0x4B90 DUP4 PUSH2 0x4B37 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4B6C JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x4BCE DUP2 DUP5 PUSH2 0x4B43 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BEB JUMPI PUSH2 0x4BEA PUSH2 0x3F77 JUMP JUMPDEST JUMPDEST PUSH2 0x4BF5 PUSH1 0x40 PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4C04 DUP5 DUP3 DUP6 ADD PUSH2 0x30D2 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x4C17 DUP5 DUP3 DUP6 ADD PUSH2 0x30D2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C38 JUMPI PUSH2 0x4C37 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4C45 DUP5 DUP3 DUP6 ADD PUSH2 0x4BD6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x4C61 PUSH0 DUP4 ADD DUP7 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x4C6E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x362A JUMP JUMPDEST PUSH2 0x4C7B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x4CE7 DUP3 PUSH2 0x30B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x4CF2 DUP4 PUSH2 0x30B3 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x4D02 JUMPI PUSH2 0x4D01 PUSH2 0x4C83 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4D17 DUP3 PUSH2 0x30B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x4D22 DUP4 PUSH2 0x30B3 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x4D30 DUP2 PUSH2 0x30B3 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x4D47 JUMPI PUSH2 0x4D46 PUSH2 0x4CB0 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4D63 DUP4 DUP4 PUSH2 0x4D4E JUMP JUMPDEST DUP3 PUSH2 0x4D6E DUP2 CALLDATALOAD PUSH2 0x3400 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH2 0x4DAE JUMPI PUSH2 0x4DA9 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL PUSH2 0x485D JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4DEC DUP4 DUP4 PUSH2 0x4D4E JUMP JUMPDEST DUP3 PUSH2 0x4DF7 DUP2 CALLDATALOAD PUSH2 0x4DB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x8 DUP3 LT ISZERO PUSH2 0x4E37 JUMPI PUSH2 0x4E32 PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x8 SUB PUSH1 0x8 MUL PUSH2 0x485D JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xC0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4E55 DUP3 PUSH2 0x4E3F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4E6D PUSH2 0x4E68 DUP3 PUSH2 0x35BA JUMP JUMPDEST PUSH2 0x4E4B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xE0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4E89 DUP3 PUSH2 0x4E73 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4EA1 PUSH2 0x4E9C DUP3 PUSH2 0x36D6 JUMP JUMPDEST PUSH2 0x4E7F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4EC1 PUSH2 0x4EBC DUP3 PUSH2 0x30B3 JUMP JUMPDEST PUSH2 0x4EA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4ED2 DUP3 DUP8 PUSH2 0x4E5C JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x4EE2 DUP3 DUP7 PUSH2 0x4E90 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SWAP2 POP PUSH2 0x4EF2 DUP3 DUP6 PUSH2 0x4EB0 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4F02 DUP3 DUP5 PUSH2 0x4192 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F1A DUP3 PUSH2 0x30B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x4F25 DUP4 PUSH2 0x30B3 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x4F3D JUMPI PUSH2 0x4F3C PUSH2 0x4CB0 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4F5D PUSH2 0x4F58 DUP3 PUSH2 0x3400 JUMP JUMPDEST PUSH2 0x4F43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F6E DUP3 DUP6 PUSH2 0x4F4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4F7E DUP3 DUP5 PUSH2 0x4E5C JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F99 DUP3 DUP8 PUSH2 0x4F4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4FA9 DUP3 DUP7 PUSH2 0x4E5C JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x4FB9 DUP3 DUP6 PUSH2 0x4F4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4FC9 DUP3 DUP5 PUSH2 0x4192 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x4FE5 DUP2 PUSH2 0x3409 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x4FF9 DUP2 PUSH2 0x4357 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5014 JUMPI PUSH2 0x5013 PUSH2 0x3F77 JUMP JUMPDEST JUMPDEST PUSH2 0x501E PUSH1 0x60 PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x502D DUP5 DUP3 DUP6 ADD PUSH2 0x4FD7 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x5040 DUP5 DUP3 DUP6 ADD PUSH2 0x4FEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x5054 DUP5 DUP3 DUP6 ADD PUSH2 0x47C4 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5075 JUMPI PUSH2 0x5074 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x5082 DUP5 DUP3 DUP6 ADD PUSH2 0x4FFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x509E PUSH0 DUP4 ADD DUP7 PUSH2 0x33BA JUMP JUMPDEST PUSH2 0x50AB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x33BA JUMP JUMPDEST PUSH2 0x50B8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0x2B SWAP1 0xEB 0xA6 CALLER BALANCE 0xB2 0xAC 0xB4 0xD DUP15 CALLDATALOAD PUSH25 0x6EC952268846213C4537DC6B1465D8DD4F2764736F6C634300 ADDMOD XOR STOP CALLER ",
"sourceMap": "349:339:39:-:0;;;380:305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;556:5;563:7;572:11;585:9;787:5:23;794:7;811:10;:8;;;:10;;:::i;:::-;823:11;836:9;2778::24;2789;1024::10;1035;604::39;1297:1:28;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;1079:9:11;1047:42;;;;;;;;;;1125:1;1104:23;;:9;:23;;;1100:53;;1136:17;;;;;;;;;;;;;;1100:53;1163:8;;:20;;;1184:9;1163:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;965:83:10;;2831:16:24::1;:14;;;:16;;:::i;:::-;2814:33;;:14;:33;;;2810:68;;;2856:22;;;;;;;;;;;;;;2810:68;2936:16;:14;;;:16;;:::i;:::-;2919:14;:33;;;;:::i;:::-;2912:2;:41;;;;:::i;:::-;2888:65;;;;::::0;::::1;2701:259:::0;;;1656:5:33;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;647:202:23;;;;626:51:39::2;632:9;666:10;:8;;;:10;;:::i;:::-;660:2;:16;;;;:::i;:::-;643:14;:33;;;;:::i;:::-;626:5;;;:51;;:::i;:::-;380:305:::0;;;;;349:339;;2688:82:33;2737:5;2761:2;2754:9;;2688:82;:::o;2912:187:28:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;4222:87:24:-;4277:5;4301:1;4294:8;;4222:87;:::o;7439:208:33:-;7528:1;7509:21;;:7;:21;;;7505:91;;7582:1;7553:32;;;;;;;;;;;:::i;:::-;;;;;;;;7505:91;7605:35;7621:1;7625:7;7634:5;7605:7;;;:35;;:::i;:::-;7439:208;;:::o;5989:1107::-;6094:1;6078:18;;:4;:18;;;6074:540;;6230:5;6214:12;;:21;;;;;;;:::i;:::-;;;;;;;;6074:540;;;6266:19;6288:9;:15;6298:4;6288:15;;;;;;;;;;;;;;;;6266:37;;6335:5;6321:11;:19;6317:115;;;6392:4;6398:11;6411:5;6367:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6317:115;6584:5;6570:11;:19;6552:9;:15;6562:4;6552:15;;;;;;;;;;;;;;;:37;;;;6252:362;6074:540;6642:1;6628:16;;:2;:16;;;6624:425;;6807:5;6791:12;;:21;;;;;;;;;;;6624:425;;;7019:5;7002:9;:13;7012:2;7002:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6624:425;7079:2;7064:25;;7073:4;7064:25;;;7083:5;7064:25;;;;;;:::i;:::-;;;;;;;;5989:1107;;;:::o;7:75:40:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:77::-;2714:7;2743:5;2732:16;;2677:77;;;:::o;2760:122::-;2833:24;2851:5;2833:24;:::i;:::-;2826:5;2823:35;2813:63;;2872:1;2869;2862:12;2813:63;2760:122;:::o;2888:143::-;2945:5;2976:6;2970:13;2961:22;;2992:33;3019:5;2992:33;:::i;:::-;2888:143;;;;:::o;3037:126::-;3074:7;3114:42;3107:5;3103:54;3092:65;;3037:126;;;:::o;3169:96::-;3206:7;3235:24;3253:5;3235:24;:::i;:::-;3224:35;;3169:96;;;:::o;3271:122::-;3344:24;3362:5;3344:24;:::i;:::-;3337:5;3334:35;3324:63;;3383:1;3380;3373:12;3324:63;3271:122;:::o;3399:143::-;3456:5;3487:6;3481:13;3472:22;;3503:33;3530:5;3503:33;:::i;:::-;3399:143;;;;:::o;3548:1323::-;3674:6;3682;3690;3698;3706;3755:3;3743:9;3734:7;3730:23;3726:33;3723:120;;;3762:79;;:::i;:::-;3723:120;3903:1;3892:9;3888:17;3882:24;3933:18;3925:6;3922:30;3919:117;;;3955:79;;:::i;:::-;3919:117;4060:74;4126:7;4117:6;4106:9;4102:22;4060:74;:::i;:::-;4050:84;;3853:291;4204:2;4193:9;4189:18;4183:25;4235:18;4227:6;4224:30;4221:117;;;4257:79;;:::i;:::-;4221:117;4362:74;4428:7;4419:6;4408:9;4404:22;4362:74;:::i;:::-;4352:84;;4154:292;4485:2;4511:64;4567:7;4558:6;4547:9;4543:22;4511:64;:::i;:::-;4501:74;;4456:129;4624:2;4650:64;4706:7;4697:6;4686:9;4682:22;4650:64;:::i;:::-;4640:74;;4595:129;4763:3;4790:64;4846:7;4837:6;4826:9;4822:22;4790:64;:::i;:::-;4780:74;;4734:130;3548:1323;;;;;;;;:::o;4877:118::-;4964:24;4982:5;4964:24;:::i;:::-;4959:3;4952:37;4877:118;;:::o;5001:222::-;5094:4;5132:2;5121:9;5117:18;5109:26;;5145:71;5213:1;5202:9;5198:17;5189:6;5145:71;:::i;:::-;5001:222;;;;:::o;5229:86::-;5264:7;5304:4;5297:5;5293:16;5282:27;;5229:86;;;:::o;5321:180::-;5369:77;5366:1;5359:88;5466:4;5463:1;5456:15;5490:4;5487:1;5480:15;5507:191;5545:4;5565:18;5581:1;5565:18;:::i;:::-;5560:23;;5597:18;5613:1;5597:18;:::i;:::-;5592:23;;5639:1;5636;5632:9;5624:17;;5663:4;5657;5654:14;5651:40;;;5671:18;;:::i;:::-;5651:40;5507:191;;;;:::o;5704:102::-;5746:8;5793:5;5790:1;5786:13;5765:34;;5704:102;;;:::o;5812:848::-;5873:5;5880:4;5904:6;5895:15;;5928:5;5919:14;;5942:712;5963:1;5953:8;5950:15;5942:712;;;6058:4;6053:3;6049:14;6043:4;6040:24;6037:50;;;6067:18;;:::i;:::-;6037:50;6117:1;6107:8;6103:16;6100:451;;;6532:4;6525:5;6521:16;6512:25;;6100:451;6582:4;6576;6572:15;6564:23;;6612:32;6635:8;6612:32;:::i;:::-;6600:44;;5942:712;;;5812:848;;;;;;;:::o;6666:1073::-;6720:5;6911:8;6901:40;;6932:1;6923:10;;6934:5;;6901:40;6960:4;6950:36;;6977:1;6968:10;;6979:5;;6950:36;7046:4;7094:1;7089:27;;;;7130:1;7125:191;;;;7039:277;;7089:27;7107:1;7098:10;;7109:5;;;7125:191;7170:3;7160:8;7157:17;7154:43;;;7177:18;;:::i;:::-;7154:43;7226:8;7223:1;7219:16;7210:25;;7261:3;7254:5;7251:14;7248:40;;;7268:18;;:::i;:::-;7248:40;7301:5;;;7039:277;;7425:2;7415:8;7412:16;7406:3;7400:4;7397:13;7393:36;7375:2;7365:8;7362:16;7357:2;7351:4;7348:12;7344:35;7328:111;7325:246;;;7481:8;7475:4;7471:19;7462:28;;7516:3;7509:5;7506:14;7503:40;;;7523:18;;:::i;:::-;7503:40;7556:5;;7325:246;7596:42;7634:3;7624:8;7618:4;7615:1;7596:42;:::i;:::-;7581:57;;;;7670:4;7665:3;7661:14;7654:5;7651:25;7648:51;;;7679:18;;:::i;:::-;7648:51;7728:4;7721:5;7717:16;7708:25;;6666:1073;;;;;;:::o;7745:281::-;7803:5;7827:23;7845:4;7827:23;:::i;:::-;7819:31;;7871:25;7887:8;7871:25;:::i;:::-;7859:37;;7915:104;7952:66;7942:8;7936:4;7915:104;:::i;:::-;7906:113;;7745:281;;;;:::o;8032:99::-;8084:6;8118:5;8112:12;8102:22;;8032:99;;;:::o;8137:180::-;8185:77;8182:1;8175:88;8282:4;8279:1;8272:15;8306:4;8303:1;8296:15;8323:320;8367:6;8404:1;8398:4;8394:12;8384:22;;8451:1;8445:4;8441:12;8472:18;8462:81;;8528:4;8520:6;8516:17;8506:27;;8462:81;8590:2;8582:6;8579:14;8559:18;8556:38;8553:84;;8609:18;;:::i;:::-;8553:84;8374:269;8323:320;;;:::o;8649:141::-;8698:4;8721:3;8713:11;;8744:3;8741:1;8734:14;8778:4;8775:1;8765:18;8757:26;;8649:141;;;:::o;8796:93::-;8833:6;8880:2;8875;8868:5;8864:14;8860:23;8850:33;;8796:93;;;:::o;8895:107::-;8939:8;8989:5;8983:4;8979:16;8958:37;;8895:107;;;;:::o;9008:393::-;9077:6;9127:1;9115:10;9111:18;9150:97;9180:66;9169:9;9150:97;:::i;:::-;9268:39;9298:8;9287:9;9268:39;:::i;:::-;9256:51;;9340:4;9336:9;9329:5;9325:21;9316:30;;9389:4;9379:8;9375:19;9368:5;9365:30;9355:40;;9084:317;;9008:393;;;;;:::o;9407:60::-;9435:3;9456:5;9449:12;;9407:60;;;:::o;9473:142::-;9523:9;9556:53;9574:34;9583:24;9601:5;9583:24;:::i;:::-;9574:34;:::i;:::-;9556:53;:::i;:::-;9543:66;;9473:142;;;:::o;9621:75::-;9664:3;9685:5;9678:12;;9621:75;;;:::o;9702:269::-;9812:39;9843:7;9812:39;:::i;:::-;9873:91;9922:41;9946:16;9922:41;:::i;:::-;9914:6;9907:4;9901:11;9873:91;:::i;:::-;9867:4;9860:105;9778:193;9702:269;;;:::o;9977:73::-;10022:3;9977:73;:::o;10056:189::-;10133:32;;:::i;:::-;10174:65;10232:6;10224;10218:4;10174:65;:::i;:::-;10109:136;10056:189;;:::o;10251:186::-;10311:120;10328:3;10321:5;10318:14;10311:120;;;10382:39;10419:1;10412:5;10382:39;:::i;:::-;10355:1;10348:5;10344:13;10335:22;;10311:120;;;10251:186;;:::o;10443:543::-;10544:2;10539:3;10536:11;10533:446;;;10578:38;10610:5;10578:38;:::i;:::-;10662:29;10680:10;10662:29;:::i;:::-;10652:8;10648:44;10845:2;10833:10;10830:18;10827:49;;;10866:8;10851:23;;10827:49;10889:80;10945:22;10963:3;10945:22;:::i;:::-;10935:8;10931:37;10918:11;10889:80;:::i;:::-;10548:431;;10533:446;10443:543;;;:::o;10992:117::-;11046:8;11096:5;11090:4;11086:16;11065:37;;10992:117;;;;:::o;11115:169::-;11159:6;11192:51;11240:1;11236:6;11228:5;11225:1;11221:13;11192:51;:::i;:::-;11188:56;11273:4;11267;11263:15;11253:25;;11166:118;11115:169;;;;:::o;11289:295::-;11365:4;11511:29;11536:3;11530:4;11511:29;:::i;:::-;11503:37;;11573:3;11570:1;11566:11;11560:4;11557:21;11549:29;;11289:295;;;;:::o;11589:1395::-;11706:37;11739:3;11706:37;:::i;:::-;11808:18;11800:6;11797:30;11794:56;;;11830:18;;:::i;:::-;11794:56;11874:38;11906:4;11900:11;11874:38;:::i;:::-;11959:67;12019:6;12011;12005:4;11959:67;:::i;:::-;12053:1;12077:4;12064:17;;12109:2;12101:6;12098:14;12126:1;12121:618;;;;12783:1;12800:6;12797:77;;;12849:9;12844:3;12840:19;12834:26;12825:35;;12797:77;12900:67;12960:6;12953:5;12900:67;:::i;:::-;12894:4;12887:81;12756:222;12091:887;;12121:618;12173:4;12169:9;12161:6;12157:22;12207:37;12239:4;12207:37;:::i;:::-;12266:1;12280:208;12294:7;12291:1;12288:14;12280:208;;;12373:9;12368:3;12364:19;12358:26;12350:6;12343:42;12424:1;12416:6;12412:14;12402:24;;12471:2;12460:9;12456:18;12443:31;;12317:4;12314:1;12310:12;12305:17;;12280:208;;;12516:6;12507:7;12504:19;12501:179;;;12574:9;12569:3;12565:19;12559:26;12617:48;12659:4;12651:6;12647:17;12636:9;12617:48;:::i;:::-;12609:6;12602:64;12524:156;12501:179;12726:1;12722;12714:6;12710:14;12706:22;12700:4;12693:36;12128:611;;;12091:887;;11681:1303;;;11589:1395;;:::o;12990:410::-;13030:7;13053:20;13071:1;13053:20;:::i;:::-;13048:25;;13087:20;13105:1;13087:20;:::i;:::-;13082:25;;13142:1;13139;13135:9;13164:30;13182:11;13164:30;:::i;:::-;13153:41;;13343:1;13334:7;13330:15;13327:1;13324:22;13304:1;13297:9;13277:83;13254:139;;13373:18;;:::i;:::-;13254:139;13038:362;12990:410;;;;:::o;13406:191::-;13446:3;13465:20;13483:1;13465:20;:::i;:::-;13460:25;;13499:20;13517:1;13499:20;:::i;:::-;13494:25;;13542:1;13539;13535:9;13528:16;;13563:3;13560:1;13557:10;13554:36;;;13570:18;;:::i;:::-;13554:36;13406:191;;;;:::o;13603:118::-;13690:24;13708:5;13690:24;:::i;:::-;13685:3;13678:37;13603:118;;:::o;13727:442::-;13876:4;13914:2;13903:9;13899:18;13891:26;;13927:71;13995:1;13984:9;13980:17;13971:6;13927:71;:::i;:::-;14008:72;14076:2;14065:9;14061:18;14052:6;14008:72;:::i;:::-;14090;14158:2;14147:9;14143:18;14134:6;14090:72;:::i;:::-;13727:442;;;;;;:::o;14175:222::-;14268:4;14306:2;14295:9;14291:18;14283:26;;14319:71;14387:1;14376:9;14372:17;14363:6;14319:71;:::i;:::-;14175:222;;;;:::o;349:339:39:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "_initialSupply",
"type": "uint256"
},
{
"internalType": "address",
"name": "_lzEndpoint",
"type": "address"
},
{
"internalType": "address",
"name": "_delegate",
"type": "address"
}
],
"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"
},
{
"inputs": [],
"name": "InvalidDelegate",
"type": "error"
},
{
"inputs": [],
"name": "InvalidEndpointCall",
"type": "error"
},
{
"inputs": [],
"name": "InvalidLocalDecimals",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "options",
"type": "bytes"
}
],
"name": "InvalidOptions",
"type": "error"
},
{
"inputs": [],
"name": "LzTokenUnavailable",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "eid",
"type": "uint32"
}
],
"name": "NoPeer",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "msgValue",
"type": "uint256"
}
],
"name": "NotEnoughNative",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "OnlyEndpoint",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "eid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "sender",
"type": "bytes32"
}
],
"name": "OnlyPeer",
"type": "error"
},
{
"inputs": [],
"name": "OnlySelf",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "SafeERC20FailedOperation",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "result",
"type": "bytes"
}
],
"name": "SimulationResult",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountLD",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minAmountLD",
"type": "uint256"
}
],
"name": "SlippageExceeded",
"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": [
{
"components": [
{
"internalType": "uint32",
"name": "eid",
"type": "uint32"
},
{
"internalType": "uint16",
"name": "msgType",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "options",
"type": "bytes"
}
],
"indexed": false,
"internalType": "struct EnforcedOptionParam[]",
"name": "_enforcedOptions",
"type": "tuple[]"
}
],
"name": "EnforcedOptionSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "inspector",
"type": "address"
}
],
"name": "MsgInspectorSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "guid",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint32",
"name": "srcEid",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "toAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountReceivedLD",
"type": "uint256"
}
],
"name": "OFTReceived",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "guid",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint32",
"name": "dstEid",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "fromAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountSentLD",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountReceivedLD",
"type": "uint256"
}
],
"name": "OFTSent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint32",
"name": "eid",
"type": "uint32"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "peer",
"type": "bytes32"
}
],
"name": "PeerSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "preCrimeAddress",
"type": "address"
}
],
"name": "PreCrimeSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "SEND",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SEND_AND_CALL",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "srcEid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "sender",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "nonce",
"type": "uint64"
}
],
"internalType": "struct Origin",
"name": "origin",
"type": "tuple"
}
],
"name": "allowInitializePath",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "approvalRequired",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "_eid",
"type": "uint32"
},
{
"internalType": "uint16",
"name": "_msgType",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_extraOptions",
"type": "bytes"
}
],
"name": "combineOptions",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimalConversionRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "endpoint",
"outputs": [
{
"internalType": "contract ILayerZeroEndpointV2",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "eid",
"type": "uint32"
},
{
"internalType": "uint16",
"name": "msgType",
"type": "uint16"
}
],
"name": "enforcedOptions",
"outputs": [
{
"internalType": "bytes",
"name": "enforcedOption",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "srcEid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "sender",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "nonce",
"type": "uint64"
}
],
"internalType": "struct Origin",
"name": "",
"type": "tuple"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
},
{
"internalType": "address",
"name": "_sender",
"type": "address"
}
],
"name": "isComposeMsgSender",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "_eid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "_peer",
"type": "bytes32"
}
],
"name": "isPeer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "srcEid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "sender",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "nonce",
"type": "uint64"
}
],
"internalType": "struct Origin",
"name": "_origin",
"type": "tuple"
},
{
"internalType": "bytes32",
"name": "_guid",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "_message",
"type": "bytes"
},
{
"internalType": "address",
"name": "_executor",
"type": "address"
},
{
"internalType": "bytes",
"name": "_extraData",
"type": "bytes"
}
],
"name": "lzReceive",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"components": [
{
"internalType": "uint32",
"name": "srcEid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "sender",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "nonce",
"type": "uint64"
}
],
"internalType": "struct Origin",
"name": "origin",
"type": "tuple"
},
{
"internalType": "uint32",
"name": "dstEid",
"type": "uint32"
},
{
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"internalType": "bytes32",
"name": "guid",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "address",
"name": "executor",
"type": "address"
},
{
"internalType": "bytes",
"name": "message",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "extraData",
"type": "bytes"
}
],
"internalType": "struct InboundPacket[]",
"name": "_packets",
"type": "tuple[]"
}
],
"name": "lzReceiveAndRevert",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "srcEid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "sender",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "nonce",
"type": "uint64"
}
],
"internalType": "struct Origin",
"name": "_origin",
"type": "tuple"
},
{
"internalType": "bytes32",
"name": "_guid",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "_message",
"type": "bytes"
},
{
"internalType": "address",
"name": "_executor",
"type": "address"
},
{
"internalType": "bytes",
"name": "_extraData",
"type": "bytes"
}
],
"name": "lzReceiveSimulate",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "msgInspector",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "nextNonce",
"outputs": [
{
"internalType": "uint64",
"name": "nonce",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "oApp",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "oAppVersion",
"outputs": [
{
"internalType": "uint64",
"name": "senderVersion",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "receiverVersion",
"type": "uint64"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "oftVersion",
"outputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
},
{
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "eid",
"type": "uint32"
}
],
"name": "peers",
"outputs": [
{
"internalType": "bytes32",
"name": "peer",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "preCrime",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "dstEid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "to",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "amountLD",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minAmountLD",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "extraOptions",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "composeMsg",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "oftCmd",
"type": "bytes"
}
],
"internalType": "struct SendParam",
"name": "_sendParam",
"type": "tuple"
}
],
"name": "quoteOFT",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "minAmountLD",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxAmountLD",
"type": "uint256"
}
],
"internalType": "struct OFTLimit",
"name": "oftLimit",
"type": "tuple"
},
{
"components": [
{
"internalType": "int256",
"name": "feeAmountLD",
"type": "int256"
},
{
"internalType": "string",
"name": "description",
"type": "string"
}
],
"internalType": "struct OFTFeeDetail[]",
"name": "oftFeeDetails",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "uint256",
"name": "amountSentLD",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountReceivedLD",
"type": "uint256"
}
],
"internalType": "struct OFTReceipt",
"name": "oftReceipt",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "dstEid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "to",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "amountLD",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minAmountLD",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "extraOptions",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "composeMsg",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "oftCmd",
"type": "bytes"
}
],
"internalType": "struct SendParam",
"name": "_sendParam",
"type": "tuple"
},
{
"internalType": "bool",
"name": "_payInLzToken",
"type": "bool"
}
],
"name": "quoteSend",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "nativeFee",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lzTokenFee",
"type": "uint256"
}
],
"internalType": "struct MessagingFee",
"name": "msgFee",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "dstEid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "to",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "amountLD",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minAmountLD",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "extraOptions",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "composeMsg",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "oftCmd",
"type": "bytes"
}
],
"internalType": "struct SendParam",
"name": "_sendParam",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "nativeFee",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lzTokenFee",
"type": "uint256"
}
],
"internalType": "struct MessagingFee",
"name": "_fee",
"type": "tuple"
},
{
"internalType": "address",
"name": "_refundAddress",
"type": "address"
}
],
"name": "send",
"outputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "guid",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "nonce",
"type": "uint64"
},
{
"components": [
{
"internalType": "uint256",
"name": "nativeFee",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lzTokenFee",
"type": "uint256"
}
],
"internalType": "struct MessagingFee",
"name": "fee",
"type": "tuple"
}
],
"internalType": "struct MessagingReceipt",
"name": "msgReceipt",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "amountSentLD",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountReceivedLD",
"type": "uint256"
}
],
"internalType": "struct OFTReceipt",
"name": "oftReceipt",
"type": "tuple"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_delegate",
"type": "address"
}
],
"name": "setDelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "eid",
"type": "uint32"
},
{
"internalType": "uint16",
"name": "msgType",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "options",
"type": "bytes"
}
],
"internalType": "struct EnforcedOptionParam[]",
"name": "_enforcedOptions",
"type": "tuple[]"
}
],
"name": "setEnforcedOptions",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_msgInspector",
"type": "address"
}
],
"name": "setMsgInspector",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "_eid",
"type": "uint32"
},
{
"internalType": "bytes32",
"name": "_peer",
"type": "bytes32"
}
],
"name": "setPeer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_preCrime",
"type": "address"
}
],
"name": "setPreCrime",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "sharedDecimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "token",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"storageLayout": {
"storage": [
{
"astId": 3841,
"contract": "myOFT.sol:MyOFT",
"label": "_owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 1390,
"contract": "myOFT.sol:MyOFT",
"label": "peers",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_uint32,t_bytes32)"
},
{
"astId": 2166,
"contract": "myOFT.sol:MyOFT",
"label": "preCrime",
"offset": 0,
"slot": "2",
"type": "t_address"
},
{
"astId": 2006,
"contract": "myOFT.sol:MyOFT",
"label": "enforcedOptions",
"offset": 0,
"slot": "3",
"type": "t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))"
},
{
"astId": 2786,
"contract": "myOFT.sol:MyOFT",
"label": "msgInspector",
"offset": 0,
"slot": "4",
"type": "t_address"
},
{
"astId": 4230,
"contract": "myOFT.sol:MyOFT",
"label": "_balances",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 4236,
"contract": "myOFT.sol:MyOFT",
"label": "_allowances",
"offset": 0,
"slot": "6",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
},
{
"astId": 4238,
"contract": "myOFT.sol:MyOFT",
"label": "_totalSupply",
"offset": 0,
"slot": "7",
"type": "t_uint256"
},
{
"astId": 4240,
"contract": "myOFT.sol:MyOFT",
"label": "_name",
"offset": 0,
"slot": "8",
"type": "t_string_storage"
},
{
"astId": 4242,
"contract": "myOFT.sol:MyOFT",
"label": "_symbol",
"offset": 0,
"slot": "9",
"type": "t_string_storage"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_bytes32": {
"encoding": "inplace",
"label": "bytes32",
"numberOfBytes": "32"
},
"t_bytes_storage": {
"encoding": "bytes",
"label": "bytes",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_mapping(t_address,t_uint256))": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => mapping(address => uint256))",
"numberOfBytes": "32",
"value": "t_mapping(t_address,t_uint256)"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_mapping(t_uint16,t_bytes_storage)": {
"encoding": "mapping",
"key": "t_uint16",
"label": "mapping(uint16 => bytes)",
"numberOfBytes": "32",
"value": "t_bytes_storage"
},
"t_mapping(t_uint32,t_bytes32)": {
"encoding": "mapping",
"key": "t_uint32",
"label": "mapping(uint32 => bytes32)",
"numberOfBytes": "32",
"value": "t_bytes32"
},
"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))": {
"encoding": "mapping",
"key": "t_uint32",
"label": "mapping(uint32 => mapping(uint16 => bytes))",
"numberOfBytes": "32",
"value": "t_mapping(t_uint16,t_bytes_storage)"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_uint16": {
"encoding": "inplace",
"label": "uint16",
"numberOfBytes": "2"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
},
"t_uint32": {
"encoding": "inplace",
"label": "uint32",
"numberOfBytes": "4"
}
}
},
"web3Deploy": "var _name = /* var of type string here */ ;\nvar _symbol = /* var of type string here */ ;\nvar _initialSupply = /* var of type uint256 here */ ;\nvar _lzEndpoint = /* var of type address here */ ;\nvar _delegate = /* var of type address here */ ;\nvar myoftContract = new web3.eth.Contract([{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"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\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalDecimals\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"}],\"name\":\"SlippageExceeded\",\"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\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"name\":\"OFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"name\":\"OFTSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimalConversionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"}],\"name\":\"quoteOFT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTLimit\",\"name\":\"oftLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"feeAmountLD\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct OFTFeeDetail[]\",\"name\":\"oftFeeDetails\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTReceipt\",\"name\":\"oftReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTReceipt\",\"name\":\"oftReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]);\nvar myoft = myoftContract.deploy({\n data: '0x60c060405234801562000010575f80fd5b50604051620060dc380380620060dc833981810160405281019062000036919062000878565b8484838383836200004c620002d860201b60201c565b8484818181818d5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000c6575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000bd91906200094b565b60405180910390fd5b620000d781620002e060201b60201c565b508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000172576040517fb586360400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60805173ffffffffffffffffffffffffffffffffffffffff1663ca5eb5e1826040518263ffffffff1660e01b8152600401620001af91906200094b565b5f604051808303815f87803b158015620001c7575f80fd5b505af1158015620001da573d5f803e3d5ffd5b5050505050505050620001f2620003a160201b60201c565b60ff168360ff16101562000232576040517f1e9714b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62000242620003a160201b60201c565b836200024f91906200099f565b600a6200025d919062000b2a565b60a08181525050505050816008908162000278919062000da8565b5080600990816200028a919062000da8565b50505050505050620002cd81620002a6620002d860201b60201c565b600a620002b4919062000b2a565b85620002c1919062000e8c565b620003a960201b60201c565b505050505062000f77565b5f6012905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6006905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200041c575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200041391906200094b565b60405180910390fd5b6200042f5f83836200043360201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000487578060075f8282546200047a919062000ed6565b925050819055506200055a565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000514578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200050b9392919062000f21565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a3578060075f8282540392505081905550620005ee565b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200064d919062000f5c565b60405180910390a3505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620006bb8262000673565b810181811067ffffffffffffffff82111715620006dd57620006dc62000683565b5b80604052505050565b5f620006f16200065a565b9050620006ff8282620006b0565b919050565b5f67ffffffffffffffff82111562000721576200072062000683565b5b6200072c8262000673565b9050602081019050919050565b5f5b83811015620007585780820151818401526020810190506200073b565b5f8484015250505050565b5f62000779620007738462000704565b620006e6565b9050828152602081018484840111156200079857620007976200066f565b5b620007a584828562000739565b509392505050565b5f82601f830112620007c457620007c36200066b565b5b8151620007d684826020860162000763565b91505092915050565b5f819050919050565b620007f381620007df565b8114620007fe575f80fd5b50565b5f815190506200081181620007e8565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620008428262000817565b9050919050565b620008548162000836565b81146200085f575f80fd5b50565b5f81519050620008728162000849565b92915050565b5f805f805f60a0868803121562000894576200089362000663565b5b5f86015167ffffffffffffffff811115620008b457620008b362000667565b5b620008c288828901620007ad565b955050602086015167ffffffffffffffff811115620008e657620008e562000667565b5b620008f488828901620007ad565b9450506040620009078882890162000801565b93505060606200091a8882890162000862565b92505060806200092d8882890162000862565b9150509295509295909350565b620009458162000836565b82525050565b5f602082019050620009605f8301846200093a565b92915050565b5f60ff82169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620009ab8262000966565b9150620009b88362000966565b9250828203905060ff811115620009d457620009d362000972565b5b92915050565b5f8160011c9050919050565b5f808291508390505b600185111562000a375780860481111562000a0f5762000a0e62000972565b5b600185161562000a1f5780820291505b808102905062000a2f85620009da565b9450620009ef565b94509492505050565b5f8262000a51576001905062000b23565b8162000a60575f905062000b23565b816001811462000a79576002811462000a845762000aba565b600191505062000b23565b60ff84111562000a995762000a9862000972565b5b8360020a91508482111562000ab35762000ab262000972565b5b5062000b23565b5060208310610133831016604e8410600b841016171562000af45782820a90508381111562000aee5762000aed62000972565b5b62000b23565b62000b038484846001620009e6565b9250905081840481111562000b1d5762000b1c62000972565b5b81810290505b9392505050565b5f62000b3682620007df565b915062000b438362000966565b925062000b727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a40565b905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000bc957607f821691505b60208210810362000bdf5762000bde62000b84565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c06565b62000c4f868362000c06565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000c9062000c8a62000c8484620007df565b62000c67565b620007df565b9050919050565b5f819050919050565b62000cab8362000c70565b62000cc362000cba8262000c97565b84845462000c12565b825550505050565b5f90565b62000cd962000ccb565b62000ce681848462000ca0565b505050565b5b8181101562000d0d5762000d015f8262000ccf565b60018101905062000cec565b5050565b601f82111562000d5c5762000d268162000be5565b62000d318462000bf7565b8101602085101562000d41578190505b62000d5962000d508562000bf7565b83018262000ceb565b50505b505050565b5f82821c905092915050565b5f62000d7e5f198460080262000d61565b1980831691505092915050565b5f62000d98838362000d6d565b9150826002028217905092915050565b62000db38262000b7a565b67ffffffffffffffff81111562000dcf5762000dce62000683565b5b62000ddb825462000bb1565b62000de882828562000d11565b5f60209050601f83116001811462000e1e575f841562000e09578287015190505b62000e15858262000d8b565b86555062000e84565b601f19841662000e2e8662000be5565b5f5b8281101562000e575784890151825560018201915060208501945060208101905062000e30565b8683101562000e77578489015162000e73601f89168262000d6d565b8355505b6001600288020188555050505b505050505050565b5f62000e9882620007df565b915062000ea583620007df565b925082820262000eb581620007df565b9150828204841483151762000ecf5762000ece62000972565b5b5092915050565b5f62000ee282620007df565b915062000eef83620007df565b925082820190508082111562000f0a5762000f0962000972565b5b92915050565b62000f1b81620007df565b82525050565b5f60608201905062000f365f8301866200093a565b62000f45602083018562000f10565b62000f54604083018462000f10565b949350505050565b5f60208201905062000f715f83018462000f10565b92915050565b60805160a0516150f662000fe65f395f818161116d0152818161254b0152818161256c01528181612610015261295f01525f8181610c8d01528181610f6e0152818161160f01528181611a5901528181611f5601528181612a5901528181612cab0152612da301526150f65ff3fe608060405260043610610250575f3560e01c80637d25a05e11610138578063bb0b6a53116100b5578063d045a0dc11610079578063d045a0dc146108e7578063d424388514610903578063dd62ed3e1461092b578063f2fde38b14610967578063fc0c546a1461098f578063ff7bd03d146109b957610250565b8063bb0b6a53146107fa578063bc70b35414610836578063bd815db014610872578063c7c7f5b31461088e578063ca5eb5e1146108bf57610250565b8063963efcaa116100fc578063963efcaa146107185780639f68b96414610742578063a9059cbb1461076c578063b731ea0a146107a8578063b98bd070146107d257610250565b80637d25a05e1461062257806382413eac1461065e578063857749b01461069a5780638da5cb5b146106c457806395d89b41146106ee57610250565b806323b872dd116101d15780635535d461116101955780635535d461146105065780635a0dfe4d146105425780635e280f111461057e5780636fc1b31e146105a857806370a08231146105d0578063715018a61461060c57610250565b806323b872dd14610412578063313ce5671461044e5780633400288b146104785780633b6f743b146104a057806352ae2879146104dc57610250565b8063134d4f2511610218578063134d4f251461033e578063156a0d0f1461036857806317442b701461039357806318160ddd146103be5780631f5e1334146103e857610250565b806306fdde0314610254578063095ea7b31461027e5780630d35b415146102ba578063111ecdad146102f857806313137d6514610322575b5f80fd5b34801561025f575f80fd5b506102686109f5565b6040516102759190613028565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f91906130e6565b610a85565b6040516102b1919061313e565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db9190613179565b610aa7565b6040516102ef9392919061337e565b60405180910390f35b348015610303575f80fd5b5061030c610c4f565b60405161031991906133c9565b60405180910390f35b61033c60048036038101906103379190613494565b610c74565b005b348015610349575f80fd5b50610352610d94565b60405161035f9190613567565b60405180910390f35b348015610373575f80fd5b5061037c610d99565b60405161038a9291906135dc565b60405180910390f35b34801561039e575f80fd5b506103a7610dc6565b6040516103b5929190613603565b60405180910390f35b3480156103c9575f80fd5b506103d2610dd4565b6040516103df9190613639565b60405180910390f35b3480156103f3575f80fd5b506103fc610ddd565b6040516104099190613567565b60405180910390f35b34801561041d575f80fd5b5061043860048036038101906104339190613652565b610de2565b604051610445919061313e565b60405180910390f35b348015610459575f80fd5b50610462610e10565b60405161046f91906136bd565b60405180910390f35b348015610483575f80fd5b5061049e6004803603810190610499919061370f565b610e18565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190613777565b610e2e565b6040516104d391906137fe565b60405180910390f35b3480156104e7575f80fd5b506104f0610e96565b6040516104fd91906133c9565b60405180910390f35b348015610511575f80fd5b5061052c60048036038101906105279190613841565b610e9d565b60405161053991906138d1565b60405180910390f35b34801561054d575f80fd5b506105686004803603810190610563919061370f565b610f43565b604051610575919061313e565b60405180910390f35b348015610589575f80fd5b50610592610f6c565b60405161059f919061394c565b60405180910390f35b3480156105b3575f80fd5b506105ce60048036038101906105c99190613965565b610f90565b005b3480156105db575f80fd5b506105f660048036038101906105f19190613965565b611012565b6040516106039190613639565b60405180910390f35b348015610617575f80fd5b50610620611058565b005b34801561062d575f80fd5b506106486004803603810190610643919061370f565b61106b565b6040516106559190613990565b60405180910390f35b348015610669575f80fd5b50610684600480360381019061067f91906139a9565b611072565b604051610691919061313e565b60405180910390f35b3480156106a5575f80fd5b506106ae6110ac565b6040516106bb91906136bd565b60405180910390f35b3480156106cf575f80fd5b506106d86110b4565b6040516106e591906133c9565b60405180910390f35b3480156106f9575f80fd5b506107026110db565b60405161070f9190613028565b60405180910390f35b348015610723575f80fd5b5061072c61116b565b6040516107399190613639565b60405180910390f35b34801561074d575f80fd5b5061075661118f565b604051610763919061313e565b60405180910390f35b348015610777575f80fd5b50610792600480360381019061078d91906130e6565b611193565b60405161079f919061313e565b60405180910390f35b3480156107b3575f80fd5b506107bc6111b5565b6040516107c991906133c9565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613a6f565b6111da565b005b348015610805575f80fd5b50610820600480360381019061081b9190613aba565b6111fb565b60405161082d9190613af4565b60405180910390f35b348015610841575f80fd5b5061085c60048036038101906108579190613b0d565b611210565b60405161086991906138d1565b60405180910390f35b61088c60048036038101906108879190613bd3565b611412565b005b6108a860048036038101906108a39190613c3c565b6115de565b6040516108b6929190613d33565b60405180910390f35b3480156108ca575f80fd5b506108e560048036038101906108e09190613965565b611605565b005b61090160048036038101906108fc9190613494565b611696565b005b34801561090e575f80fd5b5061092960048036038101906109249190613965565b611713565b005b348015610936575f80fd5b50610951600480360381019061094c9190613d5a565b611795565b60405161095e9190613639565b60405180910390f35b348015610972575f80fd5b5061098d60048036038101906109889190613965565b611817565b005b34801561099a575f80fd5b506109a361189b565b6040516109b091906133c9565b60405180910390f35b3480156109c4575f80fd5b506109df60048036038101906109da9190613d98565b6118a2565b6040516109ec919061313e565b60405180910390f35b606060088054610a0490613df0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3090613df0565b8015610a7b5780601f10610a5257610100808354040283529160200191610a7b565b820191905f5260205f20905b815481529060010190602001808311610a5e57829003601f168201915b5050505050905090565b5f80610a8f6118df565b9050610a9c8185856118e6565b600191505092915050565b610aaf612f0b565b6060610ab9612f23565b5f803073ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b289190613e34565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b949190613e73565b905060405180604001604052808381526020018281525094505f67ffffffffffffffff811115610bc757610bc6613e9e565b5b604051908082528060200260200182016040528015610c0057816020015b610bed612f3b565b815260200190600190039081610be55790505b5093505f80610c29886040013589606001358a5f016020810190610c249190613aba565b6118f8565b915091506040518060400160405280838152602001828152509450505050509193909250565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d0457336040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152600401610cfb91906133c9565b60405180910390fd5b8660200135610d23885f016020810190610d1e9190613aba565b611957565b14610d7c57865f016020810190610d3a9190613aba565b87602001356040517fc26bebcc000000000000000000000000000000000000000000000000000000008152600401610d73929190613eda565b60405180910390fd5b610d8b878787878787876119c8565b50505050505050565b600281565b5f807f02e49c2c000000000000000000000000000000000000000000000000000000006001915091509091565b5f8060016002915091509091565b5f600754905090565b600181565b5f80610dec6118df565b9050610df9858285611b52565b610e04858585611be5565b60019150509392505050565b5f6012905090565b610e20611cd5565b610e2a8282611d5c565b5050565b610e36612f54565b5f610e5b84604001358560600135865f016020810190610e569190613aba565b6118f8565b9150505f80610e6a8684611dbb565b91509150610e8b865f016020810190610e839190613aba565b838388611f4c565b935050505092915050565b5f30905090565b6003602052815f5260405f20602052805f5260405f205f91509150508054610ec490613df0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef090613df0565b8015610f3b5780601f10610f1257610100808354040283529160200191610f3b565b820191905f5260205f20905b815481529060010190602001808311610f1e57829003601f168201915b505050505081565b5f8160015f8563ffffffff1663ffffffff1681526020019081526020015f205414905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f98611cd5565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d44141978160405161100791906133c9565b60405180910390a150565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611060611cd5565b6110695f61202d565b565b5f92915050565b5f3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050949350505050565b5f6006905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546110ea90613df0565b80601f016020809104026020016040519081016040528092919081815260200182805461111690613df0565b80156111615780601f1061113857610100808354040283529160200191611161565b820191905f5260205f20905b81548152906001019060200180831161114457829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f90565b5f8061119d6118df565b90506111aa818585611be5565b600191505092915050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e2611cd5565b6111f78282906111f29190614132565b6120ee565b5050565b6001602052805f5260405f205f915090505481565b60605f60035f8763ffffffff1663ffffffff1681526020019081526020015f205f8661ffff1661ffff1681526020019081526020015f20805461125290613df0565b80601f016020809104026020016040519081016040528092919081815260200182805461127e90613df0565b80156112c95780601f106112a0576101008083540402835291602001916112c9565b820191905f5260205f20905b8154815290600101906020018083116112ac57829003601f168201915b505050505090505f8151036113245783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505091505061140a565b5f8484905003611337578091505061140a565b600284849050106113cb5761138e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612203565b80848460029080926113a29392919061414e565b6040516020016113b4939291906141e6565b60405160208183030381529060405291505061140a565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401611401929190614237565b60405180910390fd5b949350505050565b5f5b82829050811015611531573683838381811061143357611432614259565b5b90506020028101906114459190614292565b905061146a815f015f01602081019061145e9190613aba565b825f0160200135610f43565b6114745750611524565b3073ffffffffffffffffffffffffffffffffffffffff1663d045a0dc8260c00135835f018460a00135858061010001906114ae91906142ba565b8760e00160208101906114c19190613965565b888061012001906114d291906142ba565b6040518963ffffffff1660e01b81526004016114f497969594939291906143ef565b5f604051808303818588803b15801561150b575f80fd5b505af115801561151d573d5f803e3d5ffd5b5050505050505b8080600101915050611414565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa15801561157a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906115a291906144c0565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016115d591906138d1565b60405180910390fd5b6115e6612f6c565b6115ee612f23565b6115f985858561225c565b91509150935093915050565b61160d611cd5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ca5eb5e1826040518263ffffffff1660e01b815260040161166691906133c9565b5f604051808303815f87803b15801561167d575f80fd5b505af115801561168f573d5f803e3d5ffd5b5050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116fb576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61170a87878787878787612361565b50505050505050565b61171b611cd5565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277608160405161178a91906133c9565b60405180910390a150565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61181f611cd5565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361188f575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161188691906133c9565b60405180910390fd5b6118988161202d565b50565b5f30905090565b5f816020013560015f845f0160208101906118bd9190613aba565b63ffffffff1663ffffffff1681526020019081526020015f2054149050919050565b5f33905090565b6118f38383836001612379565b505050565b5f8061190385612548565b91508190508381101561194f5780846040517f71c4efed000000000000000000000000000000000000000000000000000000008152600401611946929190614507565b60405180910390fd5b935093915050565b5f8060015f8463ffffffff1663ffffffff1681526020019081526020015f205490505f801b81036119bf57826040517ff6ff4fb70000000000000000000000000000000000000000000000000000000081526004016119b6919061452e565b60405180910390fd5b80915050919050565b5f6119db6119d687876125a7565b6125d1565b90505f611a0b826119f46119ef8a8a6125dc565b61260d565b8b5f016020810190611a069190613aba565b61264b565b9050611a178787612699565b15611ae5575f611a558a6040016020810190611a339190614547565b8b5f016020810190611a459190613aba565b84611a508c8c6126ac565b61270e565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637cb59012848b5f856040518563ffffffff1660e01b8152600401611ab694939291906145ab565b5f604051808303815f87803b158015611acd575f80fd5b505af1158015611adf573d5f803e3d5ffd5b50505050505b8173ffffffffffffffffffffffffffffffffffffffff16887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c8b5f016020810190611b309190613aba565b84604051611b3f9291906145f5565b60405180910390a3505050505050505050565b5f611b5d8484611795565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015611bdf5781811015611bd0578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401611bc79392919061461c565b60405180910390fd5b611bde84848484035f612379565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c55575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611c4c91906133c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611cbc91906133c9565b60405180910390fd5b611cd0838383612740565b505050565b611cdd6118df565b73ffffffffffffffffffffffffffffffffffffffff16611cfb6110b4565b73ffffffffffffffffffffffffffffffffffffffff1614611d5a57611d1e6118df565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611d5191906133c9565b60405180910390fd5b565b8060015f8463ffffffff1663ffffffff1681526020019081526020015f20819055507f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b8282604051611daf929190613eda565b60405180910390a15050565b6060805f611e278560200135611dd08661295c565b878060a00190611de091906142ba565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612990565b80925081945050505f81611e3c576001611e3f565b60025b9050611e6c865f016020810190611e569190613aba565b82888060800190611e6791906142ba565b611210565b92505f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f42578073ffffffffffffffffffffffffffffffffffffffff1663043a78eb86866040518363ffffffff1660e01b8152600401611f01929190614651565b602060405180830381865afa158015611f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f40919061469a565b505b5050509250929050565b611f54612f54565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611fb089611957565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611fe5929190614796565b6040805180830381865afa158015611fff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120239190614811565b9050949350505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5b81518110156121c85761212082828151811061210f5761210e614259565b5b602002602001015160400151612203565b81818151811061213357612132614259565b5b60200260200101516040015160035f84848151811061215557612154614259565b5b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f84848151811061218d5761218c614259565b5b60200260200101516020015161ffff1661ffff1681526020019081526020015f2090816121ba91906149d0565b5080806001019150506120f0565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516121f89190614bb6565b60405180910390a150565b5f60028201519050600361ffff168161ffff161461225857816040517f9a6d49cd00000000000000000000000000000000000000000000000000000000815260040161224f91906138d1565b60405180910390fd5b5050565b612264612f6c565b61226c612f23565b5f8061229333886040013589606001358a5f01602081019061228e9190613aba565b6129fe565b915091505f806122a38984611dbb565b915091506122d5895f0160208101906122bc9190613aba565b83838b8036038101906122cf9190614c23565b8b612a26565b955060405180604001604052808581526020018481525094503373ffffffffffffffffffffffffffffffffffffffff16865f01517f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a8b5f01602081019061233c9190613aba565b878760405161234d93929190614c4e565b60405180910390a350505050935093915050565b612370878787878787876119c8565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123e9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016123e091906133c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612459575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161245091906133c9565b60405180910390fd5b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015612542578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516125399190613639565b60405180910390a35b50505050565b5f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000836125969190614cdd565b6125a09190614d0d565b9050919050565b5f82825f90602060ff16926125be9392919061414e565b906125c99190614d58565b905092915050565b5f815f1c9050919050565b5f8282602060ff1690602860ff16926125f79392919061414e565b906126029190614de1565b60c01c905092915050565b5f7f00000000000000000000000000000000000000000000000000000000000000008267ffffffffffffffff166126449190614d0d565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036126855761dead93505b61268f8484612b3c565b8290509392505050565b5f602860ff168383905011905092915050565b60608282602860ff169080926126c49392919061414e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050905092915050565b6060848484846040516020016127279493929190614ec7565b6040516020818303038152906040529050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612790578060075f8282546127849190614f10565b92505081905550612860565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561281a578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016128119392919061461c565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128a7578060075f82825403925050819055506128f2565b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161294f9190613639565b60405180910390a3505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000826129899190614cdd565b9050919050565b60605f808351119050806129c55784846040516020016129b1929190614f63565b6040516020818303038152906040526129f4565b84846129d033612bbb565b856040516020016129e49493929190614f8e565b6040516020818303038152906040525b9150935093915050565b5f80612a0b8585856118f8565b8092508193505050612a1d8683612bdc565b94509492505050565b612a2e612f6c565b5f612a3b845f0151612c5b565b90505f84602001511115612a5757612a568460200151612ca8565b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff168152602001612ab48c611957565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612aef929190614796565b60806040518083038185885af1158015612b0b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612b309190615060565b91505095945050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612bac575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401612ba391906133c9565b60405180910390fd5b612bb75f8383612740565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff165f1b9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c4c575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401612c4391906133c9565b60405180910390fd5b612c57825f83612740565b5050565b5f813414612ca057346040517f9f704120000000000000000000000000000000000000000000000000000000008152600401612c979190613639565b60405180910390fd5b819050919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d369190613e34565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d9d576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612dea337f0000000000000000000000000000000000000000000000000000000000000000848473ffffffffffffffffffffffffffffffffffffffff16612dee909392919063ffffffff16565b5050565b612e6a848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401612e239392919061508b565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e70565b50505050565b5f8060205f8451602086015f885af180612e8f576040513d5f823e3d81fd5b3d92505f519150505f8214612ea8576001811415612ec3565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b15612f0557836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401612efc91906133c9565b60405180910390fd5b50505050565b60405180604001604052805f81526020015f81525090565b60405180604001604052805f81526020015f81525090565b60405180604001604052805f8152602001606081525090565b60405180604001604052805f81526020015f81525090565b60405180606001604052805f80191681526020015f67ffffffffffffffff168152602001612f98612f54565b81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612fd5578082015181840152602081019050612fba565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ffa82612f9e565b6130048185612fa8565b9350613014818560208601612fb8565b61301d81612fe0565b840191505092915050565b5f6020820190508181035f8301526130408184612ff0565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61308282613059565b9050919050565b61309281613078565b811461309c575f80fd5b50565b5f813590506130ad81613089565b92915050565b5f819050919050565b6130c5816130b3565b81146130cf575f80fd5b50565b5f813590506130e0816130bc565b92915050565b5f80604083850312156130fc576130fb613051565b5b5f6131098582860161309f565b925050602061311a858286016130d2565b9150509250929050565b5f8115159050919050565b61313881613124565b82525050565b5f6020820190506131515f83018461312f565b92915050565b5f80fd5b5f60e082840312156131705761316f613157565b5b81905092915050565b5f6020828403121561318e5761318d613051565b5b5f82013567ffffffffffffffff8111156131ab576131aa613055565b5b6131b78482850161315b565b91505092915050565b6131c9816130b3565b82525050565b604082015f8201516131e35f8501826131c0565b5060208201516131f660208501826131c0565b50505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61323781613225565b82525050565b5f82825260208201905092915050565b5f61325782612f9e565b613261818561323d565b9350613271818560208601612fb8565b61327a81612fe0565b840191505092915050565b5f604083015f83015161329a5f86018261322e565b50602083015184820360208601526132b2828261324d565b9150508091505092915050565b5f6132ca8383613285565b905092915050565b5f602082019050919050565b5f6132e8826131fc565b6132f28185613206565b93508360208202850161330485613216565b805f5b8581101561333f578484038952815161332085826132bf565b945061332b836132d2565b925060208a01995050600181019050613307565b50829750879550505050505092915050565b604082015f8201516133655f8501826131c0565b50602082015161337860208501826131c0565b50505050565b5f60a0820190506133915f8301866131cf565b81810360408301526133a381856132de565b90506133b26060830184613351565b949350505050565b6133c381613078565b82525050565b5f6020820190506133dc5f8301846133ba565b92915050565b5f606082840312156133f7576133f6613157565b5b81905092915050565b5f819050919050565b61341281613400565b811461341c575f80fd5b50565b5f8135905061342d81613409565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261345457613453613433565b5b8235905067ffffffffffffffff81111561347157613470613437565b5b60208301915083600182028301111561348d5761348c61343b565b5b9250929050565b5f805f805f805f60e0888a0312156134af576134ae613051565b5b5f6134bc8a828b016133e2565b97505060606134cd8a828b0161341f565b965050608088013567ffffffffffffffff8111156134ee576134ed613055565b5b6134fa8a828b0161343f565b955095505060a061350d8a828b0161309f565b93505060c088013567ffffffffffffffff81111561352e5761352d613055565b5b61353a8a828b0161343f565b925092505092959891949750929550565b5f61ffff82169050919050565b6135618161354b565b82525050565b5f60208201905061357a5f830184613558565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6135b481613580565b82525050565b5f67ffffffffffffffff82169050919050565b6135d6816135ba565b82525050565b5f6040820190506135ef5f8301856135ab565b6135fc60208301846135cd565b9392505050565b5f6040820190506136165f8301856135cd565b61362360208301846135cd565b9392505050565b613633816130b3565b82525050565b5f60208201905061364c5f83018461362a565b92915050565b5f805f6060848603121561366957613668613051565b5b5f6136768682870161309f565b93505060206136878682870161309f565b9250506040613698868287016130d2565b9150509250925092565b5f60ff82169050919050565b6136b7816136a2565b82525050565b5f6020820190506136d05f8301846136ae565b92915050565b5f63ffffffff82169050919050565b6136ee816136d6565b81146136f8575f80fd5b50565b5f81359050613709816136e5565b92915050565b5f806040838503121561372557613724613051565b5b5f613732858286016136fb565b92505060206137438582860161341f565b9150509250929050565b61375681613124565b8114613760575f80fd5b50565b5f813590506137718161374d565b92915050565b5f806040838503121561378d5761378c613051565b5b5f83013567ffffffffffffffff8111156137aa576137a9613055565b5b6137b68582860161315b565b92505060206137c785828601613763565b9150509250929050565b604082015f8201516137e55f8501826131c0565b5060208201516137f860208501826131c0565b50505050565b5f6040820190506138115f8301846137d1565b92915050565b6138208161354b565b811461382a575f80fd5b50565b5f8135905061383b81613817565b92915050565b5f806040838503121561385757613856613051565b5b5f613864858286016136fb565b92505060206138758582860161382d565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f6138a38261387f565b6138ad8185613889565b93506138bd818560208601612fb8565b6138c681612fe0565b840191505092915050565b5f6020820190508181035f8301526138e98184613899565b905092915050565b5f819050919050565b5f61391461390f61390a84613059565b6138f1565b613059565b9050919050565b5f613925826138fa565b9050919050565b5f6139368261391b565b9050919050565b6139468161392c565b82525050565b5f60208201905061395f5f83018461393d565b92915050565b5f6020828403121561397a57613979613051565b5b5f6139878482850161309f565b91505092915050565b5f6020820190506139a35f8301846135cd565b92915050565b5f805f8060a085870312156139c1576139c0613051565b5b5f6139ce878288016133e2565b945050606085013567ffffffffffffffff8111156139ef576139ee613055565b5b6139fb8782880161343f565b93509350506080613a0e8782880161309f565b91505092959194509250565b5f8083601f840112613a2f57613a2e613433565b5b8235905067ffffffffffffffff811115613a4c57613a4b613437565b5b602083019150836020820283011115613a6857613a6761343b565b5b9250929050565b5f8060208385031215613a8557613a84613051565b5b5f83013567ffffffffffffffff811115613aa257613aa1613055565b5b613aae85828601613a1a565b92509250509250929050565b5f60208284031215613acf57613ace613051565b5b5f613adc848285016136fb565b91505092915050565b613aee81613400565b82525050565b5f602082019050613b075f830184613ae5565b92915050565b5f805f8060608587031215613b2557613b24613051565b5b5f613b32878288016136fb565b9450506020613b438782880161382d565b935050604085013567ffffffffffffffff811115613b6457613b63613055565b5b613b708782880161343f565b925092505092959194509250565b5f8083601f840112613b9357613b92613433565b5b8235905067ffffffffffffffff811115613bb057613baf613437565b5b602083019150836020820283011115613bcc57613bcb61343b565b5b9250929050565b5f8060208385031215613be957613be8613051565b5b5f83013567ffffffffffffffff811115613c0657613c05613055565b5b613c1285828601613b7e565b92509250509250929050565b5f60408284031215613c3357613c32613157565b5b81905092915050565b5f805f60808486031215613c5357613c52613051565b5b5f84013567ffffffffffffffff811115613c7057613c6f613055565b5b613c7c8682870161315b565b9350506020613c8d86828701613c1e565b9250506060613c9e8682870161309f565b9150509250925092565b613cb181613400565b82525050565b613cc0816135ba565b82525050565b604082015f820151613cda5f8501826131c0565b506020820151613ced60208501826131c0565b50505050565b608082015f820151613d075f850182613ca8565b506020820151613d1a6020850182613cb7565b506040820151613d2d6040850182613cc6565b50505050565b5f60c082019050613d465f830185613cf3565b613d536080830184613351565b9392505050565b5f8060408385031215613d7057613d6f613051565b5b5f613d7d8582860161309f565b9250506020613d8e8582860161309f565b9150509250929050565b5f60608284031215613dad57613dac613051565b5b5f613dba848285016133e2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613e0757607f821691505b602082108103613e1a57613e19613dc3565b5b50919050565b5f81519050613e2e81613089565b92915050565b5f60208284031215613e4957613e48613051565b5b5f613e5684828501613e20565b91505092915050565b5f81519050613e6d816130bc565b92915050565b5f60208284031215613e8857613e87613051565b5b5f613e9584828501613e5f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613ed4816136d6565b82525050565b5f604082019050613eed5f830185613ecb565b613efa6020830184613ae5565b9392505050565b613f0a82612fe0565b810181811067ffffffffffffffff82111715613f2957613f28613e9e565b5b80604052505050565b5f613f3b613048565b9050613f478282613f01565b919050565b5f67ffffffffffffffff821115613f6657613f65613e9e565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b5f67ffffffffffffffff821115613f9d57613f9c613e9e565b5b613fa682612fe0565b9050602081019050919050565b828183375f83830152505050565b5f613fd3613fce84613f83565b613f32565b905082815260208101848484011115613fef57613fee613f7f565b5b613ffa848285613fb3565b509392505050565b5f82601f83011261401657614015613433565b5b8135614026848260208601613fc1565b91505092915050565b5f6060828403121561404457614043613f77565b5b61404e6060613f32565b90505f61405d848285016136fb565b5f8301525060206140708482850161382d565b602083015250604082013567ffffffffffffffff81111561409457614093613f7b565b5b6140a084828501614002565b60408301525092915050565b5f6140be6140b984613f4c565b613f32565b905080838252602082019050602084028301858111156140e1576140e061343b565b5b835b8181101561412857803567ffffffffffffffff81111561410657614105613433565b5b808601614113898261402f565b855260208501945050506020810190506140e3565b5050509392505050565b5f61413e3684846140ac565b905092915050565b5f80fd5b5f80fd5b5f808585111561416157614160614146565b5b838611156141725761417161414a565b5b6001850283019150848603905094509492505050565b5f81905092915050565b5f61419c8261387f565b6141a68185614188565b93506141b6818560208601612fb8565b80840191505092915050565b5f6141cd8385614188565b93506141da838584613fb3565b82840190509392505050565b5f6141f18286614192565b91506141fe8284866141c2565b9150819050949350505050565b5f6142168385613889565b9350614223838584613fb3565b61422c83612fe0565b840190509392505050565b5f6020820190508181035f83015261425081848661420b565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f80fd5b5f80fd5b5f80fd5b5f82356001610140038336030381126142ae576142ad614286565b5b80830191505092915050565b5f80833560016020038436030381126142d6576142d5614286565b5b80840192508235915067ffffffffffffffff8211156142f8576142f761428a565b5b6020830192506001820236038313156143145761431361428e565b5b509250929050565b5f61432a60208401846136fb565b905092915050565b61433b816136d6565b82525050565b5f61434f602084018461341f565b905092915050565b614360816135ba565b811461436a575f80fd5b50565b5f8135905061437b81614357565b92915050565b5f61438f602084018461436d565b905092915050565b606082016143a75f83018361431c565b6143b35f850182614332565b506143c16020830183614341565b6143ce6020850182613ca8565b506143dc6040830183614381565b6143e96040850182613cb7565b50505050565b5f60e0820190506144025f83018a614397565b61440f6060830189613ae5565b818103608083015261442281878961420b565b905061443160a08301866133ba565b81810360c083015261444481848661420b565b905098975050505050505050565b5f61446461445f84613f83565b613f32565b9050828152602081018484840111156144805761447f613f7f565b5b61448b848285612fb8565b509392505050565b5f82601f8301126144a7576144a6613433565b5b81516144b7848260208601614452565b91505092915050565b5f602082840312156144d5576144d4613051565b5b5f82015167ffffffffffffffff8111156144f2576144f1613055565b5b6144fe84828501614493565b91505092915050565b5f60408201905061451a5f83018561362a565b614527602083018461362a565b9392505050565b5f6020820190506145415f830184613ecb565b92915050565b5f6020828403121561455c5761455b613051565b5b5f6145698482850161436d565b91505092915050565b5f819050919050565b5f61459561459061458b84614572565b6138f1565b61354b565b9050919050565b6145a58161457b565b82525050565b5f6080820190506145be5f8301876133ba565b6145cb6020830186613ae5565b6145d8604083018561459c565b81810360608301526145ea8184613899565b905095945050505050565b5f6040820190506146085f830185613ecb565b614615602083018461362a565b9392505050565b5f60608201905061462f5f8301866133ba565b61463c602083018561362a565b614649604083018461362a565b949350505050565b5f6040820190508181035f8301526146698185613899565b9050818103602083015261467d8184613899565b90509392505050565b5f815190506146948161374d565b92915050565b5f602082840312156146af576146ae613051565b5b5f6146bc84828501614686565b91505092915050565b5f82825260208201905092915050565b5f6146df8261387f565b6146e981856146c5565b93506146f9818560208601612fb8565b61470281612fe0565b840191505092915050565b61471681613124565b82525050565b5f60a083015f8301516147315f860182614332565b5060208301516147446020860182613ca8565b506040830151848203604086015261475c82826146d5565b9150506060830151848203606086015261477682826146d5565b915050608083015161478b608086018261470d565b508091505092915050565b5f6040820190508181035f8301526147ae818561471c565b90506147bd60208301846133ba565b9392505050565b5f604082840312156147d9576147d8613f77565b5b6147e36040613f32565b90505f6147f284828501613e5f565b5f83015250602061480584828501613e5f565b60208301525092915050565b5f6040828403121561482657614825613051565b5b5f614833848285016147c4565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026148987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261485d565b6148a2868361485d565b95508019841693508086168417925050509392505050565b5f6148d46148cf6148ca846130b3565b6138f1565b6130b3565b9050919050565b5f819050919050565b6148ed836148ba565b6149016148f9826148db565b848454614869565b825550505050565b5f90565b614915614909565b6149208184846148e4565b505050565b5b81811015614943576149385f8261490d565b600181019050614926565b5050565b601f821115614988576149598161483c565b6149628461484e565b81016020851015614971578190505b61498561497d8561484e565b830182614925565b50505b505050565b5f82821c905092915050565b5f6149a85f198460080261498d565b1980831691505092915050565b5f6149c08383614999565b9150826002028217905092915050565b6149d98261387f565b67ffffffffffffffff8111156149f2576149f1613e9e565b5b6149fc8254613df0565b614a07828285614947565b5f60209050601f831160018114614a38575f8415614a26578287015190505b614a3085826149b5565b865550614a97565b601f198416614a468661483c565b5f5b82811015614a6d57848901518255600182019150602085019450602081019050614a48565b86831015614a8a5784890151614a86601f891682614999565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614ad18161354b565b82525050565b5f606083015f830151614aec5f860182614332565b506020830151614aff6020860182614ac8565b5060408301518482036040860152614b1782826146d5565b9150508091505092915050565b5f614b2f8383614ad7565b905092915050565b5f602082019050919050565b5f614b4d82614a9f565b614b578185614aa9565b935083602082028501614b6985614ab9565b805f5b85811015614ba45784840389528151614b858582614b24565b9450614b9083614b37565b925060208a01995050600181019050614b6c565b50829750879550505050505092915050565b5f6020820190508181035f830152614bce8184614b43565b905092915050565b5f60408284031215614beb57614bea613f77565b5b614bf56040613f32565b90505f614c04848285016130d2565b5f830152506020614c17848285016130d2565b60208301525092915050565b5f60408284031215614c3857614c37613051565b5b5f614c4584828501614bd6565b91505092915050565b5f606082019050614c615f830186613ecb565b614c6e602083018561362a565b614c7b604083018461362a565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614ce7826130b3565b9150614cf2836130b3565b925082614d0257614d01614c83565b5b828204905092915050565b5f614d17826130b3565b9150614d22836130b3565b9250828202614d30816130b3565b91508282048414831517614d4757614d46614cb0565b5b5092915050565b5f82905092915050565b5f614d638383614d4e565b82614d6e8135613400565b92506020821015614dae57614da97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261485d565b831692505b505092915050565b5f7fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b5f614dec8383614d4e565b82614df78135614db6565b92506008821015614e3757614e327fffffffffffffffff0000000000000000000000000000000000000000000000008360080360080261485d565b831692505b505092915050565b5f8160c01b9050919050565b5f614e5582614e3f565b9050919050565b614e6d614e68826135ba565b614e4b565b82525050565b5f8160e01b9050919050565b5f614e8982614e73565b9050919050565b614ea1614e9c826136d6565b614e7f565b82525050565b5f819050919050565b614ec1614ebc826130b3565b614ea7565b82525050565b5f614ed28287614e5c565b600882019150614ee28286614e90565b600482019150614ef28285614eb0565b602082019150614f028284614192565b915081905095945050505050565b5f614f1a826130b3565b9150614f25836130b3565b9250828201905080821115614f3d57614f3c614cb0565b5b92915050565b5f819050919050565b614f5d614f5882613400565b614f43565b82525050565b5f614f6e8285614f4c565b602082019150614f7e8284614e5c565b6008820191508190509392505050565b5f614f998287614f4c565b602082019150614fa98286614e5c565b600882019150614fb98285614f4c565b602082019150614fc98284614192565b915081905095945050505050565b5f81519050614fe581613409565b92915050565b5f81519050614ff981614357565b92915050565b5f6080828403121561501457615013613f77565b5b61501e6060613f32565b90505f61502d84828501614fd7565b5f83015250602061504084828501614feb565b6020830152506040615054848285016147c4565b60408301525092915050565b5f6080828403121561507557615074613051565b5b5f61508284828501614fff565b91505092915050565b5f60608201905061509e5f8301866133ba565b6150ab60208301856133ba565b6150b8604083018461362a565b94935050505056fea2646970667358221220832b90eba63331b2acb40d8e35786ec952268846213c4537dc6b1465d8dd4f2764736f6c63430008180033', \n arguments: [\n _name,\n _symbol,\n _initialSupply,\n _lzEndpoint,\n _delegate,\n ]\n}).send({\n from: web3.eth.accounts[0], \n gas: '4700000'\n }, function (e, contract){\n console.log(e, contract);\n if (typeof contract.address !== 'undefined') {\n console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);\n }\n })",
"functionHashes": {
"1f5e1334": "SEND()",
"134d4f25": "SEND_AND_CALL()",
"ff7bd03d": "allowInitializePath((uint32,bytes32,uint64))",
"dd62ed3e": "allowance(address,address)",
"9f68b964": "approvalRequired()",
"095ea7b3": "approve(address,uint256)",
"70a08231": "balanceOf(address)",
"bc70b354": "combineOptions(uint32,uint16,bytes)",
"963efcaa": "decimalConversionRate()",
"313ce567": "decimals()",
"5e280f11": "endpoint()",
"5535d461": "enforcedOptions(uint32,uint16)",
"82413eac": "isComposeMsgSender((uint32,bytes32,uint64),bytes,address)",
"5a0dfe4d": "isPeer(uint32,bytes32)",
"13137d65": "lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)",
"bd815db0": "lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])",
"d045a0dc": "lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)",
"111ecdad": "msgInspector()",
"06fdde03": "name()",
"7d25a05e": "nextNonce(uint32,bytes32)",
"52ae2879": "oApp()",
"17442b70": "oAppVersion()",
"156a0d0f": "oftVersion()",
"8da5cb5b": "owner()",
"bb0b6a53": "peers(uint32)",
"b731ea0a": "preCrime()",
"0d35b415": "quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))",
"3b6f743b": "quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)",
"715018a6": "renounceOwnership()",
"c7c7f5b3": "send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)",
"ca5eb5e1": "setDelegate(address)",
"b98bd070": "setEnforcedOptions((uint32,uint16,bytes)[])",
"6fc1b31e": "setMsgInspector(address)",
"3400288b": "setPeer(uint32,bytes32)",
"d4243885": "setPreCrime(address)",
"857749b0": "sharedDecimals()",
"95d89b41": "symbol()",
"fc0c546a": "token()",
"18160ddd": "totalSupply()",
"a9059cbb": "transfer(address,uint256)",
"23b872dd": "transferFrom(address,address,uint256)",
"f2fde38b": "transferOwnership(address)"
},
"gasEstimates": {
"Creation": {
"codeDepositCost": "4145200",
"executionCost": "infinite",
"totalCost": "infinite"
},
"External": {
"SEND()": "465",
"SEND_AND_CALL()": "377",
"allowInitializePath((uint32,bytes32,uint64))": "3150",
"allowance(address,address)": "infinite",
"approvalRequired()": "397",
"approve(address,uint256)": "infinite",
"balanceOf(address)": "2962",
"combineOptions(uint32,uint16,bytes)": "infinite",
"decimalConversionRate()": "infinite",
"decimals()": "406",
"endpoint()": "infinite",
"enforcedOptions(uint32,uint16)": "infinite",
"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)": "1077",
"isPeer(uint32,bytes32)": "3037",
"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)": "infinite",
"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])": "infinite",
"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)": "infinite",
"msgInspector()": "2621",
"name()": "infinite",
"nextNonce(uint32,bytes32)": "814",
"oApp()": "513",
"oAppVersion()": "infinite",
"oftVersion()": "525",
"owner()": "2627",
"peers(uint32)": "2805",
"preCrime()": "2619",
"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))": "infinite",
"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)": "infinite",
"renounceOwnership()": "infinite",
"send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)": "infinite",
"setDelegate(address)": "infinite",
"setEnforcedOptions((uint32,uint16,bytes)[])": "infinite",
"setMsgInspector(address)": "infinite",
"setPeer(uint32,bytes32)": "infinite",
"setPreCrime(address)": "infinite",
"sharedDecimals()": "428",
"symbol()": "infinite",
"token()": "511",
"totalSupply()": "2544",
"transfer(address,uint256)": "infinite",
"transferFrom(address,address,uint256)": "infinite",
"transferOwnership(address)": "infinite"
}
},
"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."
}
}
],
"OwnableInvalidOwner(address)": [
{
"details": "The owner is not a valid owner account. (eg. `address(0)`)"
}
],
"OwnableUnauthorizedAccount(address)": [
{
"details": "The caller account is not authorized to perform an operation."
}
],
"SafeERC20FailedOperation(address)": [
{
"details": "An operation with an ERC-20 token failed."
}
]
},
"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."
},
"PreCrimeSet(address)": {
"details": "Emitted when the preCrime contract address is set.",
"params": {
"preCrimeAddress": "The address of the preCrime contract."
}
},
"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": {
"allowInitializePath((uint32,bytes32,uint64))": {
"details": "This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.",
"params": {
"origin": "The origin information containing the source endpoint and sender address."
},
"returns": {
"_0": "Whether the path has been initialized."
}
},
"allowance(address,address)": {
"details": "See {IERC20-allowance}."
},
"approvalRequired()": {
"details": "In the case of OFT where the contract IS the token, approval is NOT required.",
"returns": {
"_0": "requiresApproval Needs approval of the underlying token implementation."
}
},
"approve(address,uint256)": {
"details": "See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."
},
"balanceOf(address)": {
"details": "See {IERC20-balanceOf}."
},
"combineOptions(uint32,uint16,bytes)": {
"details": "If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.",
"params": {
"_eid": "The endpoint ID.",
"_extraOptions": "Additional options passed by the caller.",
"_msgType": "The OAPP message type."
},
"returns": {
"_0": "options The combination of caller specified options AND enforced options."
}
},
"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}."
},
"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)": {
"details": "_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.",
"params": {
"_sender": "The sender address."
},
"returns": {
"_0": "isSender Is a valid sender."
}
},
"isPeer(uint32,bytes32)": {
"details": "Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.",
"params": {
"_eid": "The endpoint ID to check.",
"_peer": "The peer to check."
},
"returns": {
"_0": "Whether the peer passed is considered 'trusted' by the OApp."
}
},
"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)": {
"details": "Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.",
"params": {
"_executor": "The address of the executor for the received message.",
"_extraData": "Additional arbitrary data provided by the corresponding executor.",
"_guid": "The unique identifier for the received LayerZero message.",
"_message": "The payload of the received message.",
"_origin": "The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."
}
},
"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])": {
"details": "Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.",
"params": {
"_packets": "An array of InboundPacket objects representing received packets to be delivered."
}
},
"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)": {
"details": "Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.",
"params": {
"_executor": "The executor address for the packet.",
"_extraData": "Additional data for the packet.",
"_guid": "The unique identifier of the packet.",
"_message": "The message payload of the packet.",
"_origin": "The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."
}
},
"name()": {
"details": "Returns the name of the token."
},
"nextNonce(uint32,bytes32)": {
"details": "_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.",
"returns": {
"nonce": "The next nonce."
}
},
"oApp()": {
"details": "Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.",
"returns": {
"_0": "The address of the OApp contract."
}
},
"oAppVersion()": {
"returns": {
"receiverVersion": "The version of the OAppReceiver.sol implementation.",
"senderVersion": "The version of the OAppSender.sol implementation."
}
},
"oftVersion()": {
"details": "interfaceId: This specific interface ID is '0x02e49c2c'.version: Indicates a cross-chain compatible msg encoding with other OFTs.If a new feature is added to the OFT cross-chain msg encoding, the version will be incremented. ie. localOFT version(x,1) CAN send messages to remoteOFT version(x,1)",
"returns": {
"interfaceId": "The interface ID.",
"version": "The version."
}
},
"owner()": {
"details": "Returns the address of the current owner."
},
"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))": {
"params": {
"_sendParam": "The parameters for the send operation."
},
"returns": {
"oftFeeDetails": "The details of OFT fees.",
"oftLimit": "The OFT limit information.",
"oftReceipt": "The OFT receipt information."
}
},
"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)": {
"details": "MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.",
"params": {
"_payInLzToken": "Flag indicating whether the caller is paying in the LZ token.",
"_sendParam": "The parameters for the send() operation."
},
"returns": {
"msgFee": "The calculated LayerZero messaging fee from the send() operation."
}
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
},
"send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)": {
"details": "Executes the send operation.MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.",
"params": {
"_fee": "The calculated fee for the send() operation. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.",
"_refundAddress": "The address to receive any excess funds.",
"_sendParam": "The parameters for the send operation."
},
"returns": {
"msgReceipt": "The receipt for the send operation.",
"oftReceipt": "The OFT receipt information."
}
},
"setDelegate(address)": {
"details": "Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.",
"params": {
"_delegate": "The address of the delegate to be set."
}
},
"setEnforcedOptions((uint32,uint16,bytes)[])": {
"details": "Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().",
"params": {
"_enforcedOptions": "An array of EnforcedOptionParam structures specifying enforced options."
}
},
"setMsgInspector(address)": {
"details": "Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.",
"params": {
"_msgInspector": "The address of the message inspector."
}
},
"setPeer(uint32,bytes32)": {
"details": "Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.",
"params": {
"_eid": "The endpoint ID.",
"_peer": "The address of the peer to be associated with the corresponding endpoint."
}
},
"setPreCrime(address)": {
"details": "Sets the preCrime contract address.",
"params": {
"_preCrime": "The address of the preCrime contract."
}
},
"sharedDecimals()": {
"details": "Retrieves the shared decimals of the OFT.Sets an implicit cap on the amount of tokens, over uint64.max() will need some sort of outbound cap / totalSupply cap Lowest common decimal denominator between chains. Defaults to 6 decimal places to provide up to 18,446,744,073,709.551615 units (max uint64). For tokens exceeding this totalSupply(), they will need to override the sharedDecimals function with something smaller. ie. 4 sharedDecimals would be 1,844,674,407,370,955.1615",
"returns": {
"_0": "The shared decimals of the OFT."
}
},
"symbol()": {
"details": "Returns the symbol of the token, usually a shorter version of the name."
},
"token()": {
"details": "Retrieves the address of the underlying ERC20 implementation.In the case of OFT, address(this) and erc20 are the same contract.",
"returns": {
"_0": "The address of the OFT token."
}
},
"totalSupply()": {
"details": "See {IERC20-totalSupply}."
},
"transfer(address,uint256)": {
"details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."
},
"transferFrom(address,address,uint256)": {
"details": "See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"allowInitializePath((uint32,bytes32,uint64))": {
"notice": "Checks if the path initialization is allowed based on the provided origin."
},
"approvalRequired()": {
"notice": "Indicates whether the OFT contract requires approval of the 'token()' to send."
},
"combineOptions(uint32,uint16,bytes)": {
"notice": "Combines options for a given endpoint and message type."
},
"endpoint()": {
"notice": "Retrieves the LayerZero endpoint associated with the OApp."
},
"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)": {
"notice": "Indicates whether an address is an approved composeMsg sender to the Endpoint."
},
"nextNonce(uint32,bytes32)": {
"notice": "Retrieves the next nonce for a given source endpoint and sender address."
},
"oAppVersion()": {
"notice": "Retrieves the OApp version information."
},
"oftVersion()": {
"notice": "Retrieves interfaceID and the version of the OFT."
},
"peers(uint32)": {
"notice": "Retrieves the peer (OApp) associated with a corresponding endpoint."
},
"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))": {
"notice": "Provides the fee breakdown and settings data for an OFT. Unused in the default implementation."
},
"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)": {
"notice": "Provides a quote for the send() operation."
},
"setDelegate(address)": {
"notice": "Sets the delegate address for the OApp."
},
"setPeer(uint32,bytes32)": {
"notice": "Sets the peer address (OApp instance) for a corresponding endpoint."
}
},
"version": 1
},
"Runtime Bytecode": {
"functionDebugData": {
"@SEND_2781": {
"entryPoint": 3549,
"id": 2781,
"parameterSlots": 0,
"returnSlots": 0
},
"@SEND_AND_CALL_2784": {
"entryPoint": 3476,
"id": 2784,
"parameterSlots": 0,
"returnSlots": 0
},
"@_approve_4613": {
"entryPoint": 6374,
"id": 4613,
"parameterSlots": 3,
"returnSlots": 0
},
"@_approve_4673": {
"entryPoint": 9081,
"id": 4673,
"parameterSlots": 4,
"returnSlots": 0
},
"@_assertOptionsType3_2148": {
"entryPoint": 8707,
"id": 2148,
"parameterSlots": 1,
"returnSlots": 0
},
"@_buildMsgAndOptions_3139": {
"entryPoint": 7611,
"id": 3139,
"parameterSlots": 2,
"returnSlots": 2
},
"@_burn_4595": {
"entryPoint": 11228,
"id": 4595,
"parameterSlots": 2,
"returnSlots": 0
},
"@_callOptionalReturn_5248": {
"entryPoint": 11888,
"id": 5248,
"parameterSlots": 2,
"returnSlots": 0
},
"@_checkOwner_3917": {
"entryPoint": 7381,
"id": 3917,
"parameterSlots": 0,
"returnSlots": 0
},
"@_credit_2735": {
"entryPoint": 9803,
"id": 2735,
"parameterSlots": 3,
"returnSlots": 1
},
"@_debitView_3336": {
"entryPoint": 6392,
"id": 3336,
"parameterSlots": 3,
"returnSlots": 2
},
"@_debit_2700": {
"entryPoint": 10750,
"id": 2700,
"parameterSlots": 4,
"returnSlots": 2
},
"@_getPeerOrRevert_1485": {
"entryPoint": 6487,
"id": 1485,
"parameterSlots": 1,
"returnSlots": 1
},
"@_lzReceiveSimulate_3238": {
"entryPoint": 9057,
"id": 3238,
"parameterSlots": 7,
"returnSlots": 0
},
"@_lzReceive_3213": {
"entryPoint": 6600,
"id": 3213,
"parameterSlots": 7,
"returnSlots": 0
},
"@_lzSend_1781": {
"entryPoint": 10790,
"id": 1781,
"parameterSlots": 5,
"returnSlots": 1
},
"@_mint_4562": {
"entryPoint": 11068,
"id": 4562,
"parameterSlots": 2,
"returnSlots": 0
},
"@_msgSender_5302": {
"entryPoint": 6367,
"id": 5302,
"parameterSlots": 0,
"returnSlots": 1
},
"@_payLzToken_1838": {
"entryPoint": 11432,
"id": 1838,
"parameterSlots": 1,
"returnSlots": 0
},
"@_payNative_1802": {
"entryPoint": 11355,
"id": 1802,
"parameterSlots": 1,
"returnSlots": 1
},
"@_quote_1726": {
"entryPoint": 8012,
"id": 1726,
"parameterSlots": 4,
"returnSlots": 1
},
"@_removeDust_3272": {
"entryPoint": 9544,
"id": 3272,
"parameterSlots": 1,
"returnSlots": 1
},
"@_send_3071": {
"entryPoint": 8796,
"id": 3071,
"parameterSlots": 3,
"returnSlots": 2
},
"@_setEnforcedOptions_2071": {
"entryPoint": 8430,
"id": 2071,
"parameterSlots": 1,
"returnSlots": 0
},
"@_setPeer_1457": {
"entryPoint": 7516,
"id": 1457,
"parameterSlots": 2,
"returnSlots": 0
},
"@_spendAllowance_4721": {
"entryPoint": 6994,
"id": 4721,
"parameterSlots": 3,
"returnSlots": 0
},
"@_toLD_3285": {
"entryPoint": 9741,
"id": 3285,
"parameterSlots": 1,
"returnSlots": 1
},
"@_toSD_3301": {
"entryPoint": 10588,
"id": 3301,
"parameterSlots": 1,
"returnSlots": 1
},
"@_transferOwnership_3979": {
"entryPoint": 8237,
"id": 3979,
"parameterSlots": 1,
"returnSlots": 0
},
"@_transfer_4452": {
"entryPoint": 7141,
"id": 4452,
"parameterSlots": 3,
"returnSlots": 0
},
"@_update_4529": {
"entryPoint": 10048,
"id": 4529,
"parameterSlots": 3,
"returnSlots": 0
},
"@addressToBytes32_3811": {
"entryPoint": 11195,
"id": 3811,
"parameterSlots": 1,
"returnSlots": 1
},
"@allowInitializePath_1572": {
"entryPoint": 6306,
"id": 1572,
"parameterSlots": 1,
"returnSlots": 1
},
"@allowance_4349": {
"entryPoint": 6037,
"id": 4349,
"parameterSlots": 2,
"returnSlots": 1
},
"@amountSD_3778": {
"entryPoint": 9692,
"id": 3778,
"parameterSlots": 2,
"returnSlots": 1
},
"@approvalRequired_2667": {
"entryPoint": 4495,
"id": 2667,
"parameterSlots": 0,
"returnSlots": 1
},
"@approve_4373": {
"entryPoint": 2693,
"id": 4373,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_4308": {
"entryPoint": 4114,
"id": 4308,
"parameterSlots": 1,
"returnSlots": 1
},
"@bytes32ToAddress_3831": {
"entryPoint": 9681,
"id": 3831,
"parameterSlots": 1,
"returnSlots": 1
},
"@combineOptions_2129": {
"entryPoint": 4624,
"id": 2129,
"parameterSlots": 4,
"returnSlots": 1
},
"@composeMsg_3791": {
"entryPoint": 9900,
"id": 3791,
"parameterSlots": 2,
"returnSlots": 1
},
"@decimalConversionRate_2778": {
"entryPoint": 4459,
"id": 2778,
"parameterSlots": 0,
"returnSlots": 0
},
"@decimals_4286": {
"entryPoint": 3600,
"id": 4286,
"parameterSlots": 0,
"returnSlots": 1
},
"@encode_3548": {
"entryPoint": 9998,
"id": 3548,
"parameterSlots": 4,
"returnSlots": 1
},
"@encode_3728": {
"entryPoint": 10640,
"id": 3728,
"parameterSlots": 3,
"returnSlots": 2
},
"@endpoint_1386": {
"entryPoint": 3948,
"id": 1386,
"parameterSlots": 0,
"returnSlots": 0
},
"@enforcedOptions_2006": {
"entryPoint": 3741,
"id": 2006,
"parameterSlots": 0,
"returnSlots": 0
},
"@isComposeMsgSender_1554": {
"entryPoint": 4210,
"id": 1554,
"parameterSlots": 4,
"returnSlots": 1
},
"@isComposed_3742": {
"entryPoint": 9881,
"id": 3742,
"parameterSlots": 2,
"returnSlots": 1
},
"@isPeer_3256": {
"entryPoint": 3907,
"id": 3256,
"parameterSlots": 2,
"returnSlots": 1
},
"@lzReceiveAndRevert_2262": {
"entryPoint": 5138,
"id": 2262,
"parameterSlots": 2,
"returnSlots": 0
},
"@lzReceiveSimulate_2297": {
"entryPoint": 5782,
"id": 2297,
"parameterSlots": 7,
"returnSlots": 0
},
"@lzReceive_1637": {
"entryPoint": 3188,
"id": 1637,
"parameterSlots": 7,
"returnSlots": 0
},
"@msgInspector_2786": {
"entryPoint": 3151,
"id": 2786,
"parameterSlots": 0,
"returnSlots": 0
},
"@name_4268": {
"entryPoint": 2549,
"id": 4268,
"parameterSlots": 0,
"returnSlots": 1
},
"@nextNonce_1585": {
"entryPoint": 4203,
"id": 1585,
"parameterSlots": 2,
"returnSlots": 1
},
"@oAppVersion_1370": {
"entryPoint": 3526,
"id": 1370,
"parameterSlots": 0,
"returnSlots": 2
},
"@oApp_2178": {
"entryPoint": 3734,
"id": 2178,
"parameterSlots": 0,
"returnSlots": 1
},
"@oftVersion_2839": {
"entryPoint": 3481,
"id": 2839,
"parameterSlots": 0,
"returnSlots": 2
},
"@owner_3900": {
"entryPoint": 4276,
"id": 3900,
"parameterSlots": 0,
"returnSlots": 1
},
"@peers_1390": {
"entryPoint": 4603,
"id": 1390,
"parameterSlots": 0,
"returnSlots": 0
},
"@preCrime_2166": {
"entryPoint": 4533,
"id": 2166,
"parameterSlots": 0,
"returnSlots": 0
},
"@quoteOFT_2933": {
"entryPoint": 2727,
"id": 2933,
"parameterSlots": 1,
"returnSlots": 3
},
"@quoteSend_2974": {
"entryPoint": 3630,
"id": 2974,
"parameterSlots": 2,
"returnSlots": 1
},
"@renounceOwnership_3931": {
"entryPoint": 4184,
"id": 3931,
"parameterSlots": 0,
"returnSlots": 0
},
"@safeTransferFrom_4898": {
"entryPoint": 11758,
"id": 4898,
"parameterSlots": 4,
"returnSlots": 0
},
"@sendTo_3758": {
"entryPoint": 9639,
"id": 3758,
"parameterSlots": 2,
"returnSlots": 1
},
"@send_2999": {
"entryPoint": 5598,
"id": 2999,
"parameterSlots": 3,
"returnSlots": 2
},
"@setDelegate_1500": {
"entryPoint": 5637,
"id": 1500,
"parameterSlots": 1,
"returnSlots": 0
},
"@setEnforcedOptions_2021": {
"entryPoint": 4570,
"id": 2021,
"parameterSlots": 2,
"returnSlots": 0
},
"@setMsgInspector_2865": {
"entryPoint": 3984,
"id": 2865,
"parameterSlots": 1,
"returnSlots": 0
},
"@setPeer_1437": {
"entryPoint": 3608,
"id": 1437,
"parameterSlots": 2,
"returnSlots": 0
},
"@setPreCrime_2195": {
"entryPoint": 5907,
"id": 2195,
"parameterSlots": 1,
"returnSlots": 0
},
"@sharedDecimals_2848": {
"entryPoint": 4268,
"id": 2848,
"parameterSlots": 0,
"returnSlots": 1
},
"@symbol_4277": {
"entryPoint": 4315,
"id": 4277,
"parameterSlots": 0,
"returnSlots": 1
},
"@token_2658": {
"entryPoint": 6299,
"id": 2658,
"parameterSlots": 0,
"returnSlots": 1
},
"@totalSupply_4295": {
"entryPoint": 3540,
"id": 4295,
"parameterSlots": 0,
"returnSlots": 1
},
"@transferFrom_4405": {
"entryPoint": 3554,
"id": 4405,
"parameterSlots": 3,
"returnSlots": 1
},
"@transferOwnership_3959": {
"entryPoint": 6167,
"id": 3959,
"parameterSlots": 1,
"returnSlots": 0
},
"@transfer_4332": {
"entryPoint": 4499,
"id": 4332,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 16556,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_bytes_memory_ptr": {
"entryPoint": 16321,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_bytes_memory_ptr_fromMemory": {
"entryPoint": 17490,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 12447,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 15904,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr": {
"entryPoint": 14874,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_t_array$_t_struct$_InboundPacket_$2486_calldata_ptr_$dyn_calldata_ptr": {
"entryPoint": 15230,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_t_bool": {
"entryPoint": 14179,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool_fromMemory": {
"entryPoint": 18054,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32": {
"entryPoint": 13343,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32_fromMemory": {
"entryPoint": 20439,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes_calldata_ptr": {
"entryPoint": 13375,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_t_bytes_memory_ptr": {
"entryPoint": 16386,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes_memory_ptr_fromMemory": {
"entryPoint": 17555,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_EnforcedOptionParam_$1932_memory_ptr": {
"entryPoint": 16431,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_MessagingFee_$33_calldata_ptr": {
"entryPoint": 15390,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_MessagingFee_$33_memory_ptr": {
"entryPoint": 19414,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_MessagingFee_$33_memory_ptr_fromMemory": {
"entryPoint": 18372,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_MessagingReceipt_$28_memory_ptr_fromMemory": {
"entryPoint": 20479,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_Origin_$40_calldata_ptr": {
"entryPoint": 13282,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_SendParam_$3386_calldata_ptr": {
"entryPoint": 12635,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint16": {
"entryPoint": 14381,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 12498,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 15967,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint32": {
"entryPoint": 14075,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint64": {
"entryPoint": 17261,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint64_fromMemory": {
"entryPoint": 20459,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 14693,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address_fromMemory": {
"entryPoint": 15924,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 15706,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_uint256": {
"entryPoint": 13906,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 12518,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr": {
"entryPoint": 14959,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2486_calldata_ptr_$dyn_calldata_ptr": {
"entryPoint": 15315,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bool_fromMemory": {
"entryPoint": 18074,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes_memory_ptr_fromMemory": {
"entryPoint": 17600,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_MessagingFee_$33_memory_ptr": {
"entryPoint": 19491,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_MessagingFee_$33_memory_ptr_fromMemory": {
"entryPoint": 18449,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_MessagingReceipt_$28_memory_ptr_fromMemory": {
"entryPoint": 20576,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_Origin_$40_calldata_ptr": {
"entryPoint": 15768,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_Origin_$40_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr": {
"entryPoint": 13460,
"id": null,
"parameterSlots": 2,
"returnSlots": 7
},
"abi_decode_tuple_t_struct$_Origin_$40_calldata_ptrt_bytes_calldata_ptrt_address": {
"entryPoint": 14761,
"id": null,
"parameterSlots": 2,
"returnSlots": 4
},
"abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptr": {
"entryPoint": 12665,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptrt_bool": {
"entryPoint": 14199,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptrt_struct$_MessagingFee_$33_calldata_ptrt_address": {
"entryPoint": 15420,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 15987,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint32": {
"entryPoint": 15034,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint32t_bytes32": {
"entryPoint": 14095,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint32t_uint16": {
"entryPoint": 14401,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr": {
"entryPoint": 15117,
"id": null,
"parameterSlots": 2,
"returnSlots": 4
},
"abi_decode_tuple_t_uint64": {
"entryPoint": 17735,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr": {
"entryPoint": 19236,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr": {
"entryPoint": 12991,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 13242,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 19267,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 13022,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bool_to_t_bool": {
"entryPoint": 18189,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 12591,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32": {
"entryPoint": 15528,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 15077,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack": {
"entryPoint": 20300,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes4_to_t_bytes4_fromStack": {
"entryPoint": 13739,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 16907,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 16834,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr": {
"entryPoint": 18133,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 14489,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 16786,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_contract$_ILayerZeroEndpointV2_$202_to_t_address_fromStack": {
"entryPoint": 14653,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_int256_to_t_int256": {
"entryPoint": 12846,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_rational_0_by_1_to_t_uint16_fromStack": {
"entryPoint": 17820,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr": {
"entryPoint": 12877,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12272,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr": {
"entryPoint": 19159,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr": {
"entryPoint": 15558,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr_fromStack": {
"entryPoint": 14289,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_struct$_MessagingParams_$20_memory_ptr_to_t_struct$_MessagingParams_$20_memory_ptr_fromStack": {
"entryPoint": 18204,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_MessagingReceipt_$28_memory_ptr_to_t_struct$_MessagingReceipt_$28_memory_ptr_fromStack": {
"entryPoint": 15603,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr": {
"entryPoint": 12933,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_OFTLimit_$3392_memory_ptr_to_t_struct$_OFTLimit_$3392_memory_ptr_fromStack": {
"entryPoint": 12751,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_struct$_OFTReceipt_$3398_memory_ptr_to_t_struct$_OFTReceipt_$3398_memory_ptr_fromStack": {
"entryPoint": 13137,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_struct$_Origin_$40_calldata_ptr_to_t_struct$_Origin_$40_memory_ptr_fromStack": {
"entryPoint": 17303,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint16_to_t_uint16": {
"entryPoint": 19144,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint16_to_t_uint16_fromStack": {
"entryPoint": 13656,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 12736,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 13866,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack": {
"entryPoint": 20144,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint32_to_t_uint32": {
"entryPoint": 17202,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint32_to_t_uint32_fromStack": {
"entryPoint": 16075,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack": {
"entryPoint": 20112,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint64_to_t_uint64": {
"entryPoint": 15543,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint64_to_t_uint64_fromStack": {
"entryPoint": 13773,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack": {
"entryPoint": 20060,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint8_to_t_uint8_fromStack": {
"entryPoint": 13998,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_bytes32_t_uint64__to_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 20323,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_bytes32_t_uint64_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint64_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 20366,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 16870,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_uint64_t_uint32_t_uint256_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 20167,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 13257,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 20619,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 17835,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 17948,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 19382,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 12606,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 15092,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed": {
"entryPoint": 13788,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 16951,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 14545,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 18001,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$202__to_t_address__fromStack_reversed": {
"entryPoint": 14668,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 12328,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_struct$_MessagingFee_$33_memory_ptr__to_t_struct$_MessagingFee_$33_memory_ptr__fromStack_reversed": {
"entryPoint": 14334,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_struct$_MessagingParams_$20_memory_ptr_t_address__to_t_struct$_MessagingParams_$20_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 18326,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_struct$_MessagingReceipt_$28_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__to_t_struct$_MessagingReceipt_$28_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__fromStack_reversed": {
"entryPoint": 15667,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_struct$_OFTLimit_$3392_memory_ptr_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__to_t_struct$_OFTLimit_$3392_memory_ptr_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__fromStack_reversed": {
"entryPoint": 13182,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_struct$_Origin_$40_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$40_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 17391,
"id": null,
"parameterSlots": 8,
"returnSlots": 1
},
"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed": {
"entryPoint": 13671,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 13881,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 17671,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed": {
"entryPoint": 17710,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed": {
"entryPoint": 16090,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed": {
"entryPoint": 17909,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_uint32_t_uint256_t_uint256__to_t_uint32_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 19534,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": {
"entryPoint": 14736,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed": {
"entryPoint": 13827,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
"entryPoint": 14013,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"access_calldata_tail_t_bytes_calldata_ptr": {
"entryPoint": 17082,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"access_calldata_tail_t_struct$_InboundPacket_$2486_calldata_ptr": {
"entryPoint": 17042,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 16178,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 12360,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 16204,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_bytes_memory_ptr": {
"entryPoint": 16259,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 19129,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 12822,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_bytes_calldata_ptr": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_bytes_storage": {
"entryPoint": 18492,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 19103,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 12796,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_calldata_ptr": {
"entryPoint": 19790,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 14463,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 12190,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 19255,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 13010,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 19113,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 12806,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr": {
"entryPoint": 18117,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 14473,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 16776,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr": {
"entryPoint": 12861,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 12200,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"calldata_access_t_bytes32": {
"entryPoint": 17217,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"calldata_access_t_uint32": {
"entryPoint": 17180,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"calldata_access_t_uint64": {
"entryPoint": 17281,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"calldata_array_index_range_access_t_bytes_calldata_ptr": {
"entryPoint": 16718,
"id": null,
"parameterSlots": 4,
"returnSlots": 2
},
"checked_add_t_uint256": {
"entryPoint": 20240,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 19677,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 19725,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_bytes_storage": {
"entryPoint": 18759,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_address": {
"entryPoint": 12408,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 12580,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 13312,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes4": {
"entryPoint": 13696,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes8": {
"entryPoint": 19894,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_int256": {
"entryPoint": 12837,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_rational_0_by_1": {
"entryPoint": 17778,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint16": {
"entryPoint": 13643,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 12377,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 12467,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint32": {
"entryPoint": 14038,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint64": {
"entryPoint": 13754,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint8": {
"entryPoint": 13986,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 18725,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_array_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 16690,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32": {
"entryPoint": 19800,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes8": {
"entryPoint": 19937,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"convert_t_contract$_ILayerZeroEndpointV2_$202_to_t_address": {
"entryPoint": 14636,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_rational_0_by_1_to_t_uint16": {
"entryPoint": 17787,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_address": {
"entryPoint": 14619,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_uint160": {
"entryPoint": 14586,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 18618,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage": {
"entryPoint": 18896,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"copy_calldata_to_memory_with_cleanup": {
"entryPoint": 16307,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 12216,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 18510,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 15856,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 18869,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 16129,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 14577,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_bytes32": {
"entryPoint": 20291,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint256": {
"entryPoint": 20135,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint32": {
"entryPoint": 20095,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint64": {
"entryPoint": 20043,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 18841,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 19632,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 19587,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 15811,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 16985,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 16030,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 18651,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": {
"entryPoint": 13367,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 13363,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a": {
"entryPoint": 17034,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d": {
"entryPoint": 12631,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f": {
"entryPoint": 16247,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad": {
"entryPoint": 17030,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c": {
"entryPoint": 16714,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421": {
"entryPoint": 16251,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a": {
"entryPoint": 16710,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 13371,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e": {
"entryPoint": 17038,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 16255,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 12373,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 12369,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 12256,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_192": {
"entryPoint": 20031,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_224": {
"entryPoint": 20083,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 18525,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 18829,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 18701,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 18537,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 18660,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 12425,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 14157,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes32": {
"entryPoint": 13321,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint16": {
"entryPoint": 14359,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 12476,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint32": {
"entryPoint": 14053,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint64": {
"entryPoint": 17239,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 18697,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:71346:40",
"nodeType": "YulBlock",
"src": "0:71346:40",
"statements": [
{
"body": {
"nativeSrc": "66:40:40",
"nodeType": "YulBlock",
"src": "66:40:40",
"statements": [
{
"nativeSrc": "77:22:40",
"nodeType": "YulAssignment",
"src": "77:22:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "93:5:40",
"nodeType": "YulIdentifier",
"src": "93:5:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "87:5:40",
"nodeType": "YulIdentifier",
"src": "87:5:40"
},
"nativeSrc": "87:12:40",
"nodeType": "YulFunctionCall",
"src": "87:12:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "77:6:40",
"nodeType": "YulIdentifier",
"src": "77:6:40"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7:99:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "49:5:40",
"nodeType": "YulTypedName",
"src": "49:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "59:6:40",
"nodeType": "YulTypedName",
"src": "59:6:40",
"type": ""
}
],
"src": "7:99:40"
},
{
"body": {
"nativeSrc": "208:73:40",
"nodeType": "YulBlock",
"src": "208:73:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "225:3:40",
"nodeType": "YulIdentifier",
"src": "225:3:40"
},
{
"name": "length",
"nativeSrc": "230:6:40",
"nodeType": "YulIdentifier",
"src": "230:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "218:6:40",
"nodeType": "YulIdentifier",
"src": "218:6:40"
},
"nativeSrc": "218:19:40",
"nodeType": "YulFunctionCall",
"src": "218:19:40"
},
"nativeSrc": "218:19:40",
"nodeType": "YulExpressionStatement",
"src": "218:19:40"
},
{
"nativeSrc": "246:29:40",
"nodeType": "YulAssignment",
"src": "246:29:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "265:3:40",
"nodeType": "YulIdentifier",
"src": "265:3:40"
},
{
"kind": "number",
"nativeSrc": "270:4:40",
"nodeType": "YulLiteral",
"src": "270:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "261:3:40",
"nodeType": "YulIdentifier",
"src": "261:3:40"
},
"nativeSrc": "261:14:40",
"nodeType": "YulFunctionCall",
"src": "261:14:40"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "246:11:40",
"nodeType": "YulIdentifier",
"src": "246:11:40"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "112:169:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "180:3:40",
"nodeType": "YulTypedName",
"src": "180:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "185:6:40",
"nodeType": "YulTypedName",
"src": "185:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "196:11:40",
"nodeType": "YulTypedName",
"src": "196:11:40",
"type": ""
}
],
"src": "112:169:40"
},
{
"body": {
"nativeSrc": "349:184:40",
"nodeType": "YulBlock",
"src": "349:184:40",
"statements": [
{
"nativeSrc": "359:10:40",
"nodeType": "YulVariableDeclaration",
"src": "359:10:40",
"value": {
"kind": "number",
"nativeSrc": "368:1:40",
"nodeType": "YulLiteral",
"src": "368:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "363:1:40",
"nodeType": "YulTypedName",
"src": "363:1:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "428:63:40",
"nodeType": "YulBlock",
"src": "428:63:40",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "453:3:40",
"nodeType": "YulIdentifier",
"src": "453:3:40"
},
{
"name": "i",
"nativeSrc": "458:1:40",
"nodeType": "YulIdentifier",
"src": "458:1:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "449:3:40",
"nodeType": "YulIdentifier",
"src": "449:3:40"
},
"nativeSrc": "449:11:40",
"nodeType": "YulFunctionCall",
"src": "449:11:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "472:3:40",
"nodeType": "YulIdentifier",
"src": "472:3:40"
},
{
"name": "i",
"nativeSrc": "477:1:40",
"nodeType": "YulIdentifier",
"src": "477:1:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "468:3:40",
"nodeType": "YulIdentifier",
"src": "468:3:40"
},
"nativeSrc": "468:11:40",
"nodeType": "YulFunctionCall",
"src": "468:11:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "462:5:40",
"nodeType": "YulIdentifier",
"src": "462:5:40"
},
"nativeSrc": "462:18:40",
"nodeType": "YulFunctionCall",
"src": "462:18:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "442:6:40",
"nodeType": "YulIdentifier",
"src": "442:6:40"
},
"nativeSrc": "442:39:40",
"nodeType": "YulFunctionCall",
"src": "442:39:40"
},
"nativeSrc": "442:39:40",
"nodeType": "YulExpressionStatement",
"src": "442:39:40"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "389:1:40",
"nodeType": "YulIdentifier",
"src": "389:1:40"
},
{
"name": "length",
"nativeSrc": "392:6:40",
"nodeType": "YulIdentifier",
"src": "392:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "386:2:40",
"nodeType": "YulIdentifier",
"src": "386:2:40"
},
"nativeSrc": "386:13:40",
"nodeType": "YulFunctionCall",
"src": "386:13:40"
},
"nativeSrc": "378:113:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "400:19:40",
"nodeType": "YulBlock",
"src": "400:19:40",
"statements": [
{
"nativeSrc": "402:15:40",
"nodeType": "YulAssignment",
"src": "402:15:40",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "411:1:40",
"nodeType": "YulIdentifier",
"src": "411:1:40"
},
{
"kind": "number",
"nativeSrc": "414:2:40",
"nodeType": "YulLiteral",
"src": "414:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "407:3:40",
"nodeType": "YulIdentifier",
"src": "407:3:40"
},
"nativeSrc": "407:10:40",
"nodeType": "YulFunctionCall",
"src": "407:10:40"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "402:1:40",
"nodeType": "YulIdentifier",
"src": "402:1:40"
}
]
}
]
},
"pre": {
"nativeSrc": "382:3:40",
"nodeType": "YulBlock",
"src": "382:3:40",
"statements": []
},
"src": "378:113:40"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "511:3:40",
"nodeType": "YulIdentifier",
"src": "511:3:40"
},
{
"name": "length",
"nativeSrc": "516:6:40",
"nodeType": "YulIdentifier",
"src": "516:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "507:3:40",
"nodeType": "YulIdentifier",
"src": "507:3:40"
},
"nativeSrc": "507:16:40",
"nodeType": "YulFunctionCall",
"src": "507:16:40"
},
{
"kind": "number",
"nativeSrc": "525:1:40",
"nodeType": "YulLiteral",
"src": "525:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "500:6:40",
"nodeType": "YulIdentifier",
"src": "500:6:40"
},
"nativeSrc": "500:27:40",
"nodeType": "YulFunctionCall",
"src": "500:27:40"
},
"nativeSrc": "500:27:40",
"nodeType": "YulExpressionStatement",
"src": "500:27:40"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "287:246:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "331:3:40",
"nodeType": "YulTypedName",
"src": "331:3:40",
"type": ""
},
{
"name": "dst",
"nativeSrc": "336:3:40",
"nodeType": "YulTypedName",
"src": "336:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "341:6:40",
"nodeType": "YulTypedName",
"src": "341:6:40",
"type": ""
}
],
"src": "287:246:40"
},
{
"body": {
"nativeSrc": "587:54:40",
"nodeType": "YulBlock",
"src": "587:54:40",
"statements": [
{
"nativeSrc": "597:38:40",
"nodeType": "YulAssignment",
"src": "597:38:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "615:5:40",
"nodeType": "YulIdentifier",
"src": "615:5:40"
},
{
"kind": "number",
"nativeSrc": "622:2:40",
"nodeType": "YulLiteral",
"src": "622:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "611:3:40",
"nodeType": "YulIdentifier",
"src": "611:3:40"
},
"nativeSrc": "611:14:40",
"nodeType": "YulFunctionCall",
"src": "611:14:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "631:2:40",
"nodeType": "YulLiteral",
"src": "631:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "627:3:40",
"nodeType": "YulIdentifier",
"src": "627:3:40"
},
"nativeSrc": "627:7:40",
"nodeType": "YulFunctionCall",
"src": "627:7:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "607:3:40",
"nodeType": "YulIdentifier",
"src": "607:3:40"
},
"nativeSrc": "607:28:40",
"nodeType": "YulFunctionCall",
"src": "607:28:40"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "597:6:40",
"nodeType": "YulIdentifier",
"src": "597:6:40"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "539:102:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "570:5:40",
"nodeType": "YulTypedName",
"src": "570:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "580:6:40",
"nodeType": "YulTypedName",
"src": "580:6:40",
"type": ""
}
],
"src": "539:102:40"
},
{
"body": {
"nativeSrc": "739:285:40",
"nodeType": "YulBlock",
"src": "739:285:40",
"statements": [
{
"nativeSrc": "749:53:40",
"nodeType": "YulVariableDeclaration",
"src": "749:53:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "796:5:40",
"nodeType": "YulIdentifier",
"src": "796:5:40"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "763:32:40",
"nodeType": "YulIdentifier",
"src": "763:32:40"
},
"nativeSrc": "763:39:40",
"nodeType": "YulFunctionCall",
"src": "763:39:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "753:6:40",
"nodeType": "YulTypedName",
"src": "753:6:40",
"type": ""
}
]
},
{
"nativeSrc": "811:78:40",
"nodeType": "YulAssignment",
"src": "811:78:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "877:3:40",
"nodeType": "YulIdentifier",
"src": "877:3:40"
},
{
"name": "length",
"nativeSrc": "882:6:40",
"nodeType": "YulIdentifier",
"src": "882:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "818:58:40",
"nodeType": "YulIdentifier",
"src": "818:58:40"
},
"nativeSrc": "818:71:40",
"nodeType": "YulFunctionCall",
"src": "818:71:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "811:3:40",
"nodeType": "YulIdentifier",
"src": "811:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "937:5:40",
"nodeType": "YulIdentifier",
"src": "937:5:40"
},
{
"kind": "number",
"nativeSrc": "944:4:40",
"nodeType": "YulLiteral",
"src": "944:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "933:3:40",
"nodeType": "YulIdentifier",
"src": "933:3:40"
},
"nativeSrc": "933:16:40",
"nodeType": "YulFunctionCall",
"src": "933:16:40"
},
{
"name": "pos",
"nativeSrc": "951:3:40",
"nodeType": "YulIdentifier",
"src": "951:3:40"
},
{
"name": "length",
"nativeSrc": "956:6:40",
"nodeType": "YulIdentifier",
"src": "956:6:40"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "898:34:40",
"nodeType": "YulIdentifier",
"src": "898:34:40"
},
"nativeSrc": "898:65:40",
"nodeType": "YulFunctionCall",
"src": "898:65:40"
},
"nativeSrc": "898:65:40",
"nodeType": "YulExpressionStatement",
"src": "898:65:40"
},
{
"nativeSrc": "972:46:40",
"nodeType": "YulAssignment",
"src": "972:46:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "983:3:40",
"nodeType": "YulIdentifier",
"src": "983:3:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "1010:6:40",
"nodeType": "YulIdentifier",
"src": "1010:6:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "988:21:40",
"nodeType": "YulIdentifier",
"src": "988:21:40"
},
"nativeSrc": "988:29:40",
"nodeType": "YulFunctionCall",
"src": "988:29:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "979:3:40",
"nodeType": "YulIdentifier",
"src": "979:3:40"
},
"nativeSrc": "979:39:40",
"nodeType": "YulFunctionCall",
"src": "979:39:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "972:3:40",
"nodeType": "YulIdentifier",
"src": "972:3:40"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "647:377:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "720:5:40",
"nodeType": "YulTypedName",
"src": "720:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "727:3:40",
"nodeType": "YulTypedName",
"src": "727:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "735:3:40",
"nodeType": "YulTypedName",
"src": "735:3:40",
"type": ""
}
],
"src": "647:377:40"
},
{
"body": {
"nativeSrc": "1148:195:40",
"nodeType": "YulBlock",
"src": "1148:195:40",
"statements": [
{
"nativeSrc": "1158:26:40",
"nodeType": "YulAssignment",
"src": "1158:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1170:9:40",
"nodeType": "YulIdentifier",
"src": "1170:9:40"
},
{
"kind": "number",
"nativeSrc": "1181:2:40",
"nodeType": "YulLiteral",
"src": "1181:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1166:3:40",
"nodeType": "YulIdentifier",
"src": "1166:3:40"
},
"nativeSrc": "1166:18:40",
"nodeType": "YulFunctionCall",
"src": "1166:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1158:4:40",
"nodeType": "YulIdentifier",
"src": "1158:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1205:9:40",
"nodeType": "YulIdentifier",
"src": "1205:9:40"
},
{
"kind": "number",
"nativeSrc": "1216:1:40",
"nodeType": "YulLiteral",
"src": "1216:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1201:3:40",
"nodeType": "YulIdentifier",
"src": "1201:3:40"
},
"nativeSrc": "1201:17:40",
"nodeType": "YulFunctionCall",
"src": "1201:17:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "1224:4:40",
"nodeType": "YulIdentifier",
"src": "1224:4:40"
},
{
"name": "headStart",
"nativeSrc": "1230:9:40",
"nodeType": "YulIdentifier",
"src": "1230:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1220:3:40",
"nodeType": "YulIdentifier",
"src": "1220:3:40"
},
"nativeSrc": "1220:20:40",
"nodeType": "YulFunctionCall",
"src": "1220:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1194:6:40",
"nodeType": "YulIdentifier",
"src": "1194:6:40"
},
"nativeSrc": "1194:47:40",
"nodeType": "YulFunctionCall",
"src": "1194:47:40"
},
"nativeSrc": "1194:47:40",
"nodeType": "YulExpressionStatement",
"src": "1194:47:40"
},
{
"nativeSrc": "1250:86:40",
"nodeType": "YulAssignment",
"src": "1250:86:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1322:6:40",
"nodeType": "YulIdentifier",
"src": "1322:6:40"
},
{
"name": "tail",
"nativeSrc": "1331:4:40",
"nodeType": "YulIdentifier",
"src": "1331:4:40"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "1258:63:40",
"nodeType": "YulIdentifier",
"src": "1258:63:40"
},
"nativeSrc": "1258:78:40",
"nodeType": "YulFunctionCall",
"src": "1258:78:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1250:4:40",
"nodeType": "YulIdentifier",
"src": "1250:4:40"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "1030:313:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1120:9:40",
"nodeType": "YulTypedName",
"src": "1120:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1132:6:40",
"nodeType": "YulTypedName",
"src": "1132:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1143:4:40",
"nodeType": "YulTypedName",
"src": "1143:4:40",
"type": ""
}
],
"src": "1030:313:40"
},
{
"body": {
"nativeSrc": "1389:35:40",
"nodeType": "YulBlock",
"src": "1389:35:40",
"statements": [
{
"nativeSrc": "1399:19:40",
"nodeType": "YulAssignment",
"src": "1399:19:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1415:2:40",
"nodeType": "YulLiteral",
"src": "1415:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "1409:5:40",
"nodeType": "YulIdentifier",
"src": "1409:5:40"
},
"nativeSrc": "1409:9:40",
"nodeType": "YulFunctionCall",
"src": "1409:9:40"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "1399:6:40",
"nodeType": "YulIdentifier",
"src": "1399:6:40"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "1349:75:40",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "1382:6:40",
"nodeType": "YulTypedName",
"src": "1382:6:40",
"type": ""
}
],
"src": "1349:75:40"
},
{
"body": {
"nativeSrc": "1519:28:40",
"nodeType": "YulBlock",
"src": "1519:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1536:1:40",
"nodeType": "YulLiteral",
"src": "1536:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1539:1:40",
"nodeType": "YulLiteral",
"src": "1539:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1529:6:40",
"nodeType": "YulIdentifier",
"src": "1529:6:40"
},
"nativeSrc": "1529:12:40",
"nodeType": "YulFunctionCall",
"src": "1529:12:40"
},
"nativeSrc": "1529:12:40",
"nodeType": "YulExpressionStatement",
"src": "1529:12:40"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1430:117:40",
"nodeType": "YulFunctionDefinition",
"src": "1430:117:40"
},
{
"body": {
"nativeSrc": "1642:28:40",
"nodeType": "YulBlock",
"src": "1642:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1659:1:40",
"nodeType": "YulLiteral",
"src": "1659:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1662:1:40",
"nodeType": "YulLiteral",
"src": "1662:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1652:6:40",
"nodeType": "YulIdentifier",
"src": "1652:6:40"
},
"nativeSrc": "1652:12:40",
"nodeType": "YulFunctionCall",
"src": "1652:12:40"
},
"nativeSrc": "1652:12:40",
"nodeType": "YulExpressionStatement",
"src": "1652:12:40"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "1553:117:40",
"nodeType": "YulFunctionDefinition",
"src": "1553:117:40"
},
{
"body": {
"nativeSrc": "1721:81:40",
"nodeType": "YulBlock",
"src": "1721:81:40",
"statements": [
{
"nativeSrc": "1731:65:40",
"nodeType": "YulAssignment",
"src": "1731:65:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1746:5:40",
"nodeType": "YulIdentifier",
"src": "1746:5:40"
},
{
"kind": "number",
"nativeSrc": "1753:42:40",
"nodeType": "YulLiteral",
"src": "1753:42:40",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1742:3:40",
"nodeType": "YulIdentifier",
"src": "1742:3:40"
},
"nativeSrc": "1742:54:40",
"nodeType": "YulFunctionCall",
"src": "1742:54:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1731:7:40",
"nodeType": "YulIdentifier",
"src": "1731:7:40"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "1676:126:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1703:5:40",
"nodeType": "YulTypedName",
"src": "1703:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1713:7:40",
"nodeType": "YulTypedName",
"src": "1713:7:40",
"type": ""
}
],
"src": "1676:126:40"
},
{
"body": {
"nativeSrc": "1853:51:40",
"nodeType": "YulBlock",
"src": "1853:51:40",
"statements": [
{
"nativeSrc": "1863:35:40",
"nodeType": "YulAssignment",
"src": "1863:35:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1892:5:40",
"nodeType": "YulIdentifier",
"src": "1892:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "1874:17:40",
"nodeType": "YulIdentifier",
"src": "1874:17:40"
},
"nativeSrc": "1874:24:40",
"nodeType": "YulFunctionCall",
"src": "1874:24:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1863:7:40",
"nodeType": "YulIdentifier",
"src": "1863:7:40"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "1808:96:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1835:5:40",
"nodeType": "YulTypedName",
"src": "1835:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1845:7:40",
"nodeType": "YulTypedName",
"src": "1845:7:40",
"type": ""
}
],
"src": "1808:96:40"
},
{
"body": {
"nativeSrc": "1953:79:40",
"nodeType": "YulBlock",
"src": "1953:79:40",
"statements": [
{
"body": {
"nativeSrc": "2010:16:40",
"nodeType": "YulBlock",
"src": "2010:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2019:1:40",
"nodeType": "YulLiteral",
"src": "2019:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2022:1:40",
"nodeType": "YulLiteral",
"src": "2022:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2012:6:40",
"nodeType": "YulIdentifier",
"src": "2012:6:40"
},
"nativeSrc": "2012:12:40",
"nodeType": "YulFunctionCall",
"src": "2012:12:40"
},
"nativeSrc": "2012:12:40",
"nodeType": "YulExpressionStatement",
"src": "2012:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1976:5:40",
"nodeType": "YulIdentifier",
"src": "1976:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2001:5:40",
"nodeType": "YulIdentifier",
"src": "2001:5:40"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "1983:17:40",
"nodeType": "YulIdentifier",
"src": "1983:17:40"
},
"nativeSrc": "1983:24:40",
"nodeType": "YulFunctionCall",
"src": "1983:24:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "1973:2:40",
"nodeType": "YulIdentifier",
"src": "1973:2:40"
},
"nativeSrc": "1973:35:40",
"nodeType": "YulFunctionCall",
"src": "1973:35:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1966:6:40",
"nodeType": "YulIdentifier",
"src": "1966:6:40"
},
"nativeSrc": "1966:43:40",
"nodeType": "YulFunctionCall",
"src": "1966:43:40"
},
"nativeSrc": "1963:63:40",
"nodeType": "YulIf",
"src": "1963:63:40"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "1910:122:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1946:5:40",
"nodeType": "YulTypedName",
"src": "1946:5:40",
"type": ""
}
],
"src": "1910:122:40"
},
{
"body": {
"nativeSrc": "2090:87:40",
"nodeType": "YulBlock",
"src": "2090:87:40",
"statements": [
{
"nativeSrc": "2100:29:40",
"nodeType": "YulAssignment",
"src": "2100:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2122:6:40",
"nodeType": "YulIdentifier",
"src": "2122:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2109:12:40",
"nodeType": "YulIdentifier",
"src": "2109:12:40"
},
"nativeSrc": "2109:20:40",
"nodeType": "YulFunctionCall",
"src": "2109:20:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2100:5:40",
"nodeType": "YulIdentifier",
"src": "2100:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2165:5:40",
"nodeType": "YulIdentifier",
"src": "2165:5:40"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "2138:26:40",
"nodeType": "YulIdentifier",
"src": "2138:26:40"
},
"nativeSrc": "2138:33:40",
"nodeType": "YulFunctionCall",
"src": "2138:33:40"
},
"nativeSrc": "2138:33:40",
"nodeType": "YulExpressionStatement",
"src": "2138:33:40"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "2038:139:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2068:6:40",
"nodeType": "YulTypedName",
"src": "2068:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "2076:3:40",
"nodeType": "YulTypedName",
"src": "2076:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2084:5:40",
"nodeType": "YulTypedName",
"src": "2084:5:40",
"type": ""
}
],
"src": "2038:139:40"
},
{
"body": {
"nativeSrc": "2228:32:40",
"nodeType": "YulBlock",
"src": "2228:32:40",
"statements": [
{
"nativeSrc": "2238:16:40",
"nodeType": "YulAssignment",
"src": "2238:16:40",
"value": {
"name": "value",
"nativeSrc": "2249:5:40",
"nodeType": "YulIdentifier",
"src": "2249:5:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2238:7:40",
"nodeType": "YulIdentifier",
"src": "2238:7:40"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "2183:77:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2210:5:40",
"nodeType": "YulTypedName",
"src": "2210:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2220:7:40",
"nodeType": "YulTypedName",
"src": "2220:7:40",
"type": ""
}
],
"src": "2183:77:40"
},
{
"body": {
"nativeSrc": "2309:79:40",
"nodeType": "YulBlock",
"src": "2309:79:40",
"statements": [
{
"body": {
"nativeSrc": "2366:16:40",
"nodeType": "YulBlock",
"src": "2366:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2375:1:40",
"nodeType": "YulLiteral",
"src": "2375:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2378:1:40",
"nodeType": "YulLiteral",
"src": "2378:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2368:6:40",
"nodeType": "YulIdentifier",
"src": "2368:6:40"
},
"nativeSrc": "2368:12:40",
"nodeType": "YulFunctionCall",
"src": "2368:12:40"
},
"nativeSrc": "2368:12:40",
"nodeType": "YulExpressionStatement",
"src": "2368:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2332:5:40",
"nodeType": "YulIdentifier",
"src": "2332:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2357:5:40",
"nodeType": "YulIdentifier",
"src": "2357:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2339:17:40",
"nodeType": "YulIdentifier",
"src": "2339:17:40"
},
"nativeSrc": "2339:24:40",
"nodeType": "YulFunctionCall",
"src": "2339:24:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "2329:2:40",
"nodeType": "YulIdentifier",
"src": "2329:2:40"
},
"nativeSrc": "2329:35:40",
"nodeType": "YulFunctionCall",
"src": "2329:35:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2322:6:40",
"nodeType": "YulIdentifier",
"src": "2322:6:40"
},
"nativeSrc": "2322:43:40",
"nodeType": "YulFunctionCall",
"src": "2322:43:40"
},
"nativeSrc": "2319:63:40",
"nodeType": "YulIf",
"src": "2319:63:40"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "2266:122:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2302:5:40",
"nodeType": "YulTypedName",
"src": "2302:5:40",
"type": ""
}
],
"src": "2266:122:40"
},
{
"body": {
"nativeSrc": "2446:87:40",
"nodeType": "YulBlock",
"src": "2446:87:40",
"statements": [
{
"nativeSrc": "2456:29:40",
"nodeType": "YulAssignment",
"src": "2456:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2478:6:40",
"nodeType": "YulIdentifier",
"src": "2478:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2465:12:40",
"nodeType": "YulIdentifier",
"src": "2465:12:40"
},
"nativeSrc": "2465:20:40",
"nodeType": "YulFunctionCall",
"src": "2465:20:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2456:5:40",
"nodeType": "YulIdentifier",
"src": "2456:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2521:5:40",
"nodeType": "YulIdentifier",
"src": "2521:5:40"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "2494:26:40",
"nodeType": "YulIdentifier",
"src": "2494:26:40"
},
"nativeSrc": "2494:33:40",
"nodeType": "YulFunctionCall",
"src": "2494:33:40"
},
"nativeSrc": "2494:33:40",
"nodeType": "YulExpressionStatement",
"src": "2494:33:40"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "2394:139:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2424:6:40",
"nodeType": "YulTypedName",
"src": "2424:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "2432:3:40",
"nodeType": "YulTypedName",
"src": "2432:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2440:5:40",
"nodeType": "YulTypedName",
"src": "2440:5:40",
"type": ""
}
],
"src": "2394:139:40"
},
{
"body": {
"nativeSrc": "2622:391:40",
"nodeType": "YulBlock",
"src": "2622:391:40",
"statements": [
{
"body": {
"nativeSrc": "2668:83:40",
"nodeType": "YulBlock",
"src": "2668:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "2670:77:40",
"nodeType": "YulIdentifier",
"src": "2670:77:40"
},
"nativeSrc": "2670:79:40",
"nodeType": "YulFunctionCall",
"src": "2670:79:40"
},
"nativeSrc": "2670:79:40",
"nodeType": "YulExpressionStatement",
"src": "2670:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "2643:7:40",
"nodeType": "YulIdentifier",
"src": "2643:7:40"
},
{
"name": "headStart",
"nativeSrc": "2652:9:40",
"nodeType": "YulIdentifier",
"src": "2652:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "2639:3:40",
"nodeType": "YulIdentifier",
"src": "2639:3:40"
},
"nativeSrc": "2639:23:40",
"nodeType": "YulFunctionCall",
"src": "2639:23:40"
},
{
"kind": "number",
"nativeSrc": "2664:2:40",
"nodeType": "YulLiteral",
"src": "2664:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2635:3:40",
"nodeType": "YulIdentifier",
"src": "2635:3:40"
},
"nativeSrc": "2635:32:40",
"nodeType": "YulFunctionCall",
"src": "2635:32:40"
},
"nativeSrc": "2632:119:40",
"nodeType": "YulIf",
"src": "2632:119:40"
},
{
"nativeSrc": "2761:117:40",
"nodeType": "YulBlock",
"src": "2761:117:40",
"statements": [
{
"nativeSrc": "2776:15:40",
"nodeType": "YulVariableDeclaration",
"src": "2776:15:40",
"value": {
"kind": "number",
"nativeSrc": "2790:1:40",
"nodeType": "YulLiteral",
"src": "2790:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2780:6:40",
"nodeType": "YulTypedName",
"src": "2780:6:40",
"type": ""
}
]
},
{
"nativeSrc": "2805:63:40",
"nodeType": "YulAssignment",
"src": "2805:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2840:9:40",
"nodeType": "YulIdentifier",
"src": "2840:9:40"
},
{
"name": "offset",
"nativeSrc": "2851:6:40",
"nodeType": "YulIdentifier",
"src": "2851:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2836:3:40",
"nodeType": "YulIdentifier",
"src": "2836:3:40"
},
"nativeSrc": "2836:22:40",
"nodeType": "YulFunctionCall",
"src": "2836:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "2860:7:40",
"nodeType": "YulIdentifier",
"src": "2860:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "2815:20:40",
"nodeType": "YulIdentifier",
"src": "2815:20:40"
},
"nativeSrc": "2815:53:40",
"nodeType": "YulFunctionCall",
"src": "2815:53:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "2805:6:40",
"nodeType": "YulIdentifier",
"src": "2805:6:40"
}
]
}
]
},
{
"nativeSrc": "2888:118:40",
"nodeType": "YulBlock",
"src": "2888:118:40",
"statements": [
{
"nativeSrc": "2903:16:40",
"nodeType": "YulVariableDeclaration",
"src": "2903:16:40",
"value": {
"kind": "number",
"nativeSrc": "2917:2:40",
"nodeType": "YulLiteral",
"src": "2917:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2907:6:40",
"nodeType": "YulTypedName",
"src": "2907:6:40",
"type": ""
}
]
},
{
"nativeSrc": "2933:63:40",
"nodeType": "YulAssignment",
"src": "2933:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2968:9:40",
"nodeType": "YulIdentifier",
"src": "2968:9:40"
},
{
"name": "offset",
"nativeSrc": "2979:6:40",
"nodeType": "YulIdentifier",
"src": "2979:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2964:3:40",
"nodeType": "YulIdentifier",
"src": "2964:3:40"
},
"nativeSrc": "2964:22:40",
"nodeType": "YulFunctionCall",
"src": "2964:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "2988:7:40",
"nodeType": "YulIdentifier",
"src": "2988:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "2943:20:40",
"nodeType": "YulIdentifier",
"src": "2943:20:40"
},
"nativeSrc": "2943:53:40",
"nodeType": "YulFunctionCall",
"src": "2943:53:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "2933:6:40",
"nodeType": "YulIdentifier",
"src": "2933:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nativeSrc": "2539:474:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "2584:9:40",
"nodeType": "YulTypedName",
"src": "2584:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "2595:7:40",
"nodeType": "YulTypedName",
"src": "2595:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "2607:6:40",
"nodeType": "YulTypedName",
"src": "2607:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "2615:6:40",
"nodeType": "YulTypedName",
"src": "2615:6:40",
"type": ""
}
],
"src": "2539:474:40"
},
{
"body": {
"nativeSrc": "3061:48:40",
"nodeType": "YulBlock",
"src": "3061:48:40",
"statements": [
{
"nativeSrc": "3071:32:40",
"nodeType": "YulAssignment",
"src": "3071:32:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "3096:5:40",
"nodeType": "YulIdentifier",
"src": "3096:5:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3089:6:40",
"nodeType": "YulIdentifier",
"src": "3089:6:40"
},
"nativeSrc": "3089:13:40",
"nodeType": "YulFunctionCall",
"src": "3089:13:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3082:6:40",
"nodeType": "YulIdentifier",
"src": "3082:6:40"
},
"nativeSrc": "3082:21:40",
"nodeType": "YulFunctionCall",
"src": "3082:21:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "3071:7:40",
"nodeType": "YulIdentifier",
"src": "3071:7:40"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "3019:90:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3043:5:40",
"nodeType": "YulTypedName",
"src": "3043:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "3053:7:40",
"nodeType": "YulTypedName",
"src": "3053:7:40",
"type": ""
}
],
"src": "3019:90:40"
},
{
"body": {
"nativeSrc": "3174:50:40",
"nodeType": "YulBlock",
"src": "3174:50:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3191:3:40",
"nodeType": "YulIdentifier",
"src": "3191:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3211:5:40",
"nodeType": "YulIdentifier",
"src": "3211:5:40"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "3196:14:40",
"nodeType": "YulIdentifier",
"src": "3196:14:40"
},
"nativeSrc": "3196:21:40",
"nodeType": "YulFunctionCall",
"src": "3196:21:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3184:6:40",
"nodeType": "YulIdentifier",
"src": "3184:6:40"
},
"nativeSrc": "3184:34:40",
"nodeType": "YulFunctionCall",
"src": "3184:34:40"
},
"nativeSrc": "3184:34:40",
"nodeType": "YulExpressionStatement",
"src": "3184:34:40"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3115:109:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3162:5:40",
"nodeType": "YulTypedName",
"src": "3162:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3169:3:40",
"nodeType": "YulTypedName",
"src": "3169:3:40",
"type": ""
}
],
"src": "3115:109:40"
},
{
"body": {
"nativeSrc": "3322:118:40",
"nodeType": "YulBlock",
"src": "3322:118:40",
"statements": [
{
"nativeSrc": "3332:26:40",
"nodeType": "YulAssignment",
"src": "3332:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3344:9:40",
"nodeType": "YulIdentifier",
"src": "3344:9:40"
},
{
"kind": "number",
"nativeSrc": "3355:2:40",
"nodeType": "YulLiteral",
"src": "3355:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3340:3:40",
"nodeType": "YulIdentifier",
"src": "3340:3:40"
},
"nativeSrc": "3340:18:40",
"nodeType": "YulFunctionCall",
"src": "3340:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3332:4:40",
"nodeType": "YulIdentifier",
"src": "3332:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3406:6:40",
"nodeType": "YulIdentifier",
"src": "3406:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3419:9:40",
"nodeType": "YulIdentifier",
"src": "3419:9:40"
},
{
"kind": "number",
"nativeSrc": "3430:1:40",
"nodeType": "YulLiteral",
"src": "3430:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3415:3:40",
"nodeType": "YulIdentifier",
"src": "3415:3:40"
},
"nativeSrc": "3415:17:40",
"nodeType": "YulFunctionCall",
"src": "3415:17:40"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3368:37:40",
"nodeType": "YulIdentifier",
"src": "3368:37:40"
},
"nativeSrc": "3368:65:40",
"nodeType": "YulFunctionCall",
"src": "3368:65:40"
},
"nativeSrc": "3368:65:40",
"nodeType": "YulExpressionStatement",
"src": "3368:65:40"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "3230:210:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3294:9:40",
"nodeType": "YulTypedName",
"src": "3294:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3306:6:40",
"nodeType": "YulTypedName",
"src": "3306:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3317:4:40",
"nodeType": "YulTypedName",
"src": "3317:4:40",
"type": ""
}
],
"src": "3230:210:40"
},
{
"body": {
"nativeSrc": "3535:28:40",
"nodeType": "YulBlock",
"src": "3535:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "3552:1:40",
"nodeType": "YulLiteral",
"src": "3552:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "3555:1:40",
"nodeType": "YulLiteral",
"src": "3555:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "3545:6:40",
"nodeType": "YulIdentifier",
"src": "3545:6:40"
},
"nativeSrc": "3545:12:40",
"nodeType": "YulFunctionCall",
"src": "3545:12:40"
},
"nativeSrc": "3545:12:40",
"nodeType": "YulExpressionStatement",
"src": "3545:12:40"
}
]
},
"name": "revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d",
"nativeSrc": "3446:117:40",
"nodeType": "YulFunctionDefinition",
"src": "3446:117:40"
},
{
"body": {
"nativeSrc": "3674:153:40",
"nodeType": "YulBlock",
"src": "3674:153:40",
"statements": [
{
"body": {
"nativeSrc": "3714:83:40",
"nodeType": "YulBlock",
"src": "3714:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d",
"nativeSrc": "3716:77:40",
"nodeType": "YulIdentifier",
"src": "3716:77:40"
},
"nativeSrc": "3716:79:40",
"nodeType": "YulFunctionCall",
"src": "3716:79:40"
},
"nativeSrc": "3716:79:40",
"nodeType": "YulExpressionStatement",
"src": "3716:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nativeSrc": "3695:3:40",
"nodeType": "YulIdentifier",
"src": "3695:3:40"
},
{
"name": "offset",
"nativeSrc": "3700:6:40",
"nodeType": "YulIdentifier",
"src": "3700:6:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3691:3:40",
"nodeType": "YulIdentifier",
"src": "3691:3:40"
},
"nativeSrc": "3691:16:40",
"nodeType": "YulFunctionCall",
"src": "3691:16:40"
},
{
"kind": "number",
"nativeSrc": "3709:3:40",
"nodeType": "YulLiteral",
"src": "3709:3:40",
"type": "",
"value": "224"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3687:3:40",
"nodeType": "YulIdentifier",
"src": "3687:3:40"
},
"nativeSrc": "3687:26:40",
"nodeType": "YulFunctionCall",
"src": "3687:26:40"
},
"nativeSrc": "3684:113:40",
"nodeType": "YulIf",
"src": "3684:113:40"
},
{
"nativeSrc": "3806:15:40",
"nodeType": "YulAssignment",
"src": "3806:15:40",
"value": {
"name": "offset",
"nativeSrc": "3815:6:40",
"nodeType": "YulIdentifier",
"src": "3815:6:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "3806:5:40",
"nodeType": "YulIdentifier",
"src": "3806:5:40"
}
]
}
]
},
"name": "abi_decode_t_struct$_SendParam_$3386_calldata_ptr",
"nativeSrc": "3593:234:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "3652:6:40",
"nodeType": "YulTypedName",
"src": "3652:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "3660:3:40",
"nodeType": "YulTypedName",
"src": "3660:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "3668:5:40",
"nodeType": "YulTypedName",
"src": "3668:5:40",
"type": ""
}
],
"src": "3593:234:40"
},
{
"body": {
"nativeSrc": "3928:452:40",
"nodeType": "YulBlock",
"src": "3928:452:40",
"statements": [
{
"body": {
"nativeSrc": "3974:83:40",
"nodeType": "YulBlock",
"src": "3974:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "3976:77:40",
"nodeType": "YulIdentifier",
"src": "3976:77:40"
},
"nativeSrc": "3976:79:40",
"nodeType": "YulFunctionCall",
"src": "3976:79:40"
},
"nativeSrc": "3976:79:40",
"nodeType": "YulExpressionStatement",
"src": "3976:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "3949:7:40",
"nodeType": "YulIdentifier",
"src": "3949:7:40"
},
{
"name": "headStart",
"nativeSrc": "3958:9:40",
"nodeType": "YulIdentifier",
"src": "3958:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3945:3:40",
"nodeType": "YulIdentifier",
"src": "3945:3:40"
},
"nativeSrc": "3945:23:40",
"nodeType": "YulFunctionCall",
"src": "3945:23:40"
},
{
"kind": "number",
"nativeSrc": "3970:2:40",
"nodeType": "YulLiteral",
"src": "3970:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3941:3:40",
"nodeType": "YulIdentifier",
"src": "3941:3:40"
},
"nativeSrc": "3941:32:40",
"nodeType": "YulFunctionCall",
"src": "3941:32:40"
},
"nativeSrc": "3938:119:40",
"nodeType": "YulIf",
"src": "3938:119:40"
},
{
"nativeSrc": "4067:306:40",
"nodeType": "YulBlock",
"src": "4067:306:40",
"statements": [
{
"nativeSrc": "4082:45:40",
"nodeType": "YulVariableDeclaration",
"src": "4082:45:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4113:9:40",
"nodeType": "YulIdentifier",
"src": "4113:9:40"
},
{
"kind": "number",
"nativeSrc": "4124:1:40",
"nodeType": "YulLiteral",
"src": "4124:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4109:3:40",
"nodeType": "YulIdentifier",
"src": "4109:3:40"
},
"nativeSrc": "4109:17:40",
"nodeType": "YulFunctionCall",
"src": "4109:17:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "4096:12:40",
"nodeType": "YulIdentifier",
"src": "4096:12:40"
},
"nativeSrc": "4096:31:40",
"nodeType": "YulFunctionCall",
"src": "4096:31:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4086:6:40",
"nodeType": "YulTypedName",
"src": "4086:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4174:83:40",
"nodeType": "YulBlock",
"src": "4174:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "4176:77:40",
"nodeType": "YulIdentifier",
"src": "4176:77:40"
},
"nativeSrc": "4176:79:40",
"nodeType": "YulFunctionCall",
"src": "4176:79:40"
},
"nativeSrc": "4176:79:40",
"nodeType": "YulExpressionStatement",
"src": "4176:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "4146:6:40",
"nodeType": "YulIdentifier",
"src": "4146:6:40"
},
{
"kind": "number",
"nativeSrc": "4154:18:40",
"nodeType": "YulLiteral",
"src": "4154:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "4143:2:40",
"nodeType": "YulIdentifier",
"src": "4143:2:40"
},
"nativeSrc": "4143:30:40",
"nodeType": "YulFunctionCall",
"src": "4143:30:40"
},
"nativeSrc": "4140:117:40",
"nodeType": "YulIf",
"src": "4140:117:40"
},
{
"nativeSrc": "4271:92:40",
"nodeType": "YulAssignment",
"src": "4271:92:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4335:9:40",
"nodeType": "YulIdentifier",
"src": "4335:9:40"
},
{
"name": "offset",
"nativeSrc": "4346:6:40",
"nodeType": "YulIdentifier",
"src": "4346:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4331:3:40",
"nodeType": "YulIdentifier",
"src": "4331:3:40"
},
"nativeSrc": "4331:22:40",
"nodeType": "YulFunctionCall",
"src": "4331:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "4355:7:40",
"nodeType": "YulIdentifier",
"src": "4355:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_SendParam_$3386_calldata_ptr",
"nativeSrc": "4281:49:40",
"nodeType": "YulIdentifier",
"src": "4281:49:40"
},
"nativeSrc": "4281:82:40",
"nodeType": "YulFunctionCall",
"src": "4281:82:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4271:6:40",
"nodeType": "YulIdentifier",
"src": "4271:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptr",
"nativeSrc": "3833:547:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3898:9:40",
"nodeType": "YulTypedName",
"src": "3898:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "3909:7:40",
"nodeType": "YulTypedName",
"src": "3909:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "3921:6:40",
"nodeType": "YulTypedName",
"src": "3921:6:40",
"type": ""
}
],
"src": "3833:547:40"
},
{
"body": {
"nativeSrc": "4441:53:40",
"nodeType": "YulBlock",
"src": "4441:53:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4458:3:40",
"nodeType": "YulIdentifier",
"src": "4458:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "4481:5:40",
"nodeType": "YulIdentifier",
"src": "4481:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "4463:17:40",
"nodeType": "YulIdentifier",
"src": "4463:17:40"
},
"nativeSrc": "4463:24:40",
"nodeType": "YulFunctionCall",
"src": "4463:24:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4451:6:40",
"nodeType": "YulIdentifier",
"src": "4451:6:40"
},
"nativeSrc": "4451:37:40",
"nodeType": "YulFunctionCall",
"src": "4451:37:40"
},
"nativeSrc": "4451:37:40",
"nodeType": "YulExpressionStatement",
"src": "4451:37:40"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "4386:108:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4429:5:40",
"nodeType": "YulTypedName",
"src": "4429:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "4436:3:40",
"nodeType": "YulTypedName",
"src": "4436:3:40",
"type": ""
}
],
"src": "4386:108:40"
},
{
"body": {
"nativeSrc": "4660:405:40",
"nodeType": "YulBlock",
"src": "4660:405:40",
"statements": [
{
"nativeSrc": "4670:26:40",
"nodeType": "YulVariableDeclaration",
"src": "4670:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4686:3:40",
"nodeType": "YulIdentifier",
"src": "4686:3:40"
},
{
"kind": "number",
"nativeSrc": "4691:4:40",
"nodeType": "YulLiteral",
"src": "4691:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4682:3:40",
"nodeType": "YulIdentifier",
"src": "4682:3:40"
},
"nativeSrc": "4682:14:40",
"nodeType": "YulFunctionCall",
"src": "4682:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "4674:4:40",
"nodeType": "YulTypedName",
"src": "4674:4:40",
"type": ""
}
]
},
{
"nativeSrc": "4706:171:40",
"nodeType": "YulBlock",
"src": "4706:171:40",
"statements": [
{
"nativeSrc": "4748:43:40",
"nodeType": "YulVariableDeclaration",
"src": "4748:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "4778:5:40",
"nodeType": "YulIdentifier",
"src": "4778:5:40"
},
{
"kind": "number",
"nativeSrc": "4785:4:40",
"nodeType": "YulLiteral",
"src": "4785:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4774:3:40",
"nodeType": "YulIdentifier",
"src": "4774:3:40"
},
"nativeSrc": "4774:16:40",
"nodeType": "YulFunctionCall",
"src": "4774:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4768:5:40",
"nodeType": "YulIdentifier",
"src": "4768:5:40"
},
"nativeSrc": "4768:23:40",
"nodeType": "YulFunctionCall",
"src": "4768:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "4752:12:40",
"nodeType": "YulTypedName",
"src": "4752:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "4838:12:40",
"nodeType": "YulIdentifier",
"src": "4838:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "4856:3:40",
"nodeType": "YulIdentifier",
"src": "4856:3:40"
},
{
"kind": "number",
"nativeSrc": "4861:4:40",
"nodeType": "YulLiteral",
"src": "4861:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4852:3:40",
"nodeType": "YulIdentifier",
"src": "4852:3:40"
},
"nativeSrc": "4852:14:40",
"nodeType": "YulFunctionCall",
"src": "4852:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "4804:33:40",
"nodeType": "YulIdentifier",
"src": "4804:33:40"
},
"nativeSrc": "4804:63:40",
"nodeType": "YulFunctionCall",
"src": "4804:63:40"
},
"nativeSrc": "4804:63:40",
"nodeType": "YulExpressionStatement",
"src": "4804:63:40"
}
]
},
{
"nativeSrc": "4887:171:40",
"nodeType": "YulBlock",
"src": "4887:171:40",
"statements": [
{
"nativeSrc": "4929:43:40",
"nodeType": "YulVariableDeclaration",
"src": "4929:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "4959:5:40",
"nodeType": "YulIdentifier",
"src": "4959:5:40"
},
{
"kind": "number",
"nativeSrc": "4966:4:40",
"nodeType": "YulLiteral",
"src": "4966:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4955:3:40",
"nodeType": "YulIdentifier",
"src": "4955:3:40"
},
"nativeSrc": "4955:16:40",
"nodeType": "YulFunctionCall",
"src": "4955:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4949:5:40",
"nodeType": "YulIdentifier",
"src": "4949:5:40"
},
"nativeSrc": "4949:23:40",
"nodeType": "YulFunctionCall",
"src": "4949:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "4933:12:40",
"nodeType": "YulTypedName",
"src": "4933:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "5019:12:40",
"nodeType": "YulIdentifier",
"src": "5019:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "5037:3:40",
"nodeType": "YulIdentifier",
"src": "5037:3:40"
},
{
"kind": "number",
"nativeSrc": "5042:4:40",
"nodeType": "YulLiteral",
"src": "5042:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5033:3:40",
"nodeType": "YulIdentifier",
"src": "5033:3:40"
},
"nativeSrc": "5033:14:40",
"nodeType": "YulFunctionCall",
"src": "5033:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "4985:33:40",
"nodeType": "YulIdentifier",
"src": "4985:33:40"
},
"nativeSrc": "4985:63:40",
"nodeType": "YulFunctionCall",
"src": "4985:63:40"
},
"nativeSrc": "4985:63:40",
"nodeType": "YulExpressionStatement",
"src": "4985:63:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_OFTLimit_$3392_memory_ptr_to_t_struct$_OFTLimit_$3392_memory_ptr_fromStack",
"nativeSrc": "4542:523:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4647:5:40",
"nodeType": "YulTypedName",
"src": "4647:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "4654:3:40",
"nodeType": "YulTypedName",
"src": "4654:3:40",
"type": ""
}
],
"src": "4542:523:40"
},
{
"body": {
"nativeSrc": "5175:40:40",
"nodeType": "YulBlock",
"src": "5175:40:40",
"statements": [
{
"nativeSrc": "5186:22:40",
"nodeType": "YulAssignment",
"src": "5186:22:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "5202:5:40",
"nodeType": "YulIdentifier",
"src": "5202:5:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "5196:5:40",
"nodeType": "YulIdentifier",
"src": "5196:5:40"
},
"nativeSrc": "5196:12:40",
"nodeType": "YulFunctionCall",
"src": "5196:12:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "5186:6:40",
"nodeType": "YulIdentifier",
"src": "5186:6:40"
}
]
}
]
},
"name": "array_length_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "5071:144:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5158:5:40",
"nodeType": "YulTypedName",
"src": "5158:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "5168:6:40",
"nodeType": "YulTypedName",
"src": "5168:6:40",
"type": ""
}
],
"src": "5071:144:40"
},
{
"body": {
"nativeSrc": "5362:73:40",
"nodeType": "YulBlock",
"src": "5362:73:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5379:3:40",
"nodeType": "YulIdentifier",
"src": "5379:3:40"
},
{
"name": "length",
"nativeSrc": "5384:6:40",
"nodeType": "YulIdentifier",
"src": "5384:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5372:6:40",
"nodeType": "YulIdentifier",
"src": "5372:6:40"
},
"nativeSrc": "5372:19:40",
"nodeType": "YulFunctionCall",
"src": "5372:19:40"
},
"nativeSrc": "5372:19:40",
"nodeType": "YulExpressionStatement",
"src": "5372:19:40"
},
{
"nativeSrc": "5400:29:40",
"nodeType": "YulAssignment",
"src": "5400:29:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5419:3:40",
"nodeType": "YulIdentifier",
"src": "5419:3:40"
},
{
"kind": "number",
"nativeSrc": "5424:4:40",
"nodeType": "YulLiteral",
"src": "5424:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5415:3:40",
"nodeType": "YulIdentifier",
"src": "5415:3:40"
},
"nativeSrc": "5415:14:40",
"nodeType": "YulFunctionCall",
"src": "5415:14:40"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "5400:11:40",
"nodeType": "YulIdentifier",
"src": "5400:11:40"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack",
"nativeSrc": "5221:214:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "5334:3:40",
"nodeType": "YulTypedName",
"src": "5334:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "5339:6:40",
"nodeType": "YulTypedName",
"src": "5339:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "5350:11:40",
"nodeType": "YulTypedName",
"src": "5350:11:40",
"type": ""
}
],
"src": "5221:214:40"
},
{
"body": {
"nativeSrc": "5543:60:40",
"nodeType": "YulBlock",
"src": "5543:60:40",
"statements": [
{
"nativeSrc": "5553:11:40",
"nodeType": "YulAssignment",
"src": "5553:11:40",
"value": {
"name": "ptr",
"nativeSrc": "5561:3:40",
"nodeType": "YulIdentifier",
"src": "5561:3:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "5553:4:40",
"nodeType": "YulIdentifier",
"src": "5553:4:40"
}
]
},
{
"nativeSrc": "5574:22:40",
"nodeType": "YulAssignment",
"src": "5574:22:40",
"value": {
"arguments": [
{
"name": "ptr",
"nativeSrc": "5586:3:40",
"nodeType": "YulIdentifier",
"src": "5586:3:40"
},
{
"kind": "number",
"nativeSrc": "5591:4:40",
"nodeType": "YulLiteral",
"src": "5591:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5582:3:40",
"nodeType": "YulIdentifier",
"src": "5582:3:40"
},
"nativeSrc": "5582:14:40",
"nodeType": "YulFunctionCall",
"src": "5582:14:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "5574:4:40",
"nodeType": "YulIdentifier",
"src": "5574:4:40"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "5441:162:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "5530:3:40",
"nodeType": "YulTypedName",
"src": "5530:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "5538:4:40",
"nodeType": "YulTypedName",
"src": "5538:4:40",
"type": ""
}
],
"src": "5441:162:40"
},
{
"body": {
"nativeSrc": "5653:32:40",
"nodeType": "YulBlock",
"src": "5653:32:40",
"statements": [
{
"nativeSrc": "5663:16:40",
"nodeType": "YulAssignment",
"src": "5663:16:40",
"value": {
"name": "value",
"nativeSrc": "5674:5:40",
"nodeType": "YulIdentifier",
"src": "5674:5:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "5663:7:40",
"nodeType": "YulIdentifier",
"src": "5663:7:40"
}
]
}
]
},
"name": "cleanup_t_int256",
"nativeSrc": "5609:76:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5635:5:40",
"nodeType": "YulTypedName",
"src": "5635:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "5645:7:40",
"nodeType": "YulTypedName",
"src": "5645:7:40",
"type": ""
}
],
"src": "5609:76:40"
},
{
"body": {
"nativeSrc": "5744:52:40",
"nodeType": "YulBlock",
"src": "5744:52:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5761:3:40",
"nodeType": "YulIdentifier",
"src": "5761:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "5783:5:40",
"nodeType": "YulIdentifier",
"src": "5783:5:40"
}
],
"functionName": {
"name": "cleanup_t_int256",
"nativeSrc": "5766:16:40",
"nodeType": "YulIdentifier",
"src": "5766:16:40"
},
"nativeSrc": "5766:23:40",
"nodeType": "YulFunctionCall",
"src": "5766:23:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5754:6:40",
"nodeType": "YulIdentifier",
"src": "5754:6:40"
},
"nativeSrc": "5754:36:40",
"nodeType": "YulFunctionCall",
"src": "5754:36:40"
},
"nativeSrc": "5754:36:40",
"nodeType": "YulExpressionStatement",
"src": "5754:36:40"
}
]
},
"name": "abi_encode_t_int256_to_t_int256",
"nativeSrc": "5691:105:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5732:5:40",
"nodeType": "YulTypedName",
"src": "5732:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "5739:3:40",
"nodeType": "YulTypedName",
"src": "5739:3:40",
"type": ""
}
],
"src": "5691:105:40"
},
{
"body": {
"nativeSrc": "5888:73:40",
"nodeType": "YulBlock",
"src": "5888:73:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5905:3:40",
"nodeType": "YulIdentifier",
"src": "5905:3:40"
},
{
"name": "length",
"nativeSrc": "5910:6:40",
"nodeType": "YulIdentifier",
"src": "5910:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5898:6:40",
"nodeType": "YulIdentifier",
"src": "5898:6:40"
},
"nativeSrc": "5898:19:40",
"nodeType": "YulFunctionCall",
"src": "5898:19:40"
},
"nativeSrc": "5898:19:40",
"nodeType": "YulExpressionStatement",
"src": "5898:19:40"
},
{
"nativeSrc": "5926:29:40",
"nodeType": "YulAssignment",
"src": "5926:29:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5945:3:40",
"nodeType": "YulIdentifier",
"src": "5945:3:40"
},
{
"kind": "number",
"nativeSrc": "5950:4:40",
"nodeType": "YulLiteral",
"src": "5950:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5941:3:40",
"nodeType": "YulIdentifier",
"src": "5941:3:40"
},
"nativeSrc": "5941:14:40",
"nodeType": "YulFunctionCall",
"src": "5941:14:40"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "5926:11:40",
"nodeType": "YulIdentifier",
"src": "5926:11:40"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr",
"nativeSrc": "5802:159:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "5860:3:40",
"nodeType": "YulTypedName",
"src": "5860:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "5865:6:40",
"nodeType": "YulTypedName",
"src": "5865:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "5876:11:40",
"nodeType": "YulTypedName",
"src": "5876:11:40",
"type": ""
}
],
"src": "5802:159:40"
},
{
"body": {
"nativeSrc": "6049:275:40",
"nodeType": "YulBlock",
"src": "6049:275:40",
"statements": [
{
"nativeSrc": "6059:53:40",
"nodeType": "YulVariableDeclaration",
"src": "6059:53:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "6106:5:40",
"nodeType": "YulIdentifier",
"src": "6106:5:40"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "6073:32:40",
"nodeType": "YulIdentifier",
"src": "6073:32:40"
},
"nativeSrc": "6073:39:40",
"nodeType": "YulFunctionCall",
"src": "6073:39:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "6063:6:40",
"nodeType": "YulTypedName",
"src": "6063:6:40",
"type": ""
}
]
},
{
"nativeSrc": "6121:68:40",
"nodeType": "YulAssignment",
"src": "6121:68:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6177:3:40",
"nodeType": "YulIdentifier",
"src": "6177:3:40"
},
{
"name": "length",
"nativeSrc": "6182:6:40",
"nodeType": "YulIdentifier",
"src": "6182:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr",
"nativeSrc": "6128:48:40",
"nodeType": "YulIdentifier",
"src": "6128:48:40"
},
"nativeSrc": "6128:61:40",
"nodeType": "YulFunctionCall",
"src": "6128:61:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "6121:3:40",
"nodeType": "YulIdentifier",
"src": "6121:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "6237:5:40",
"nodeType": "YulIdentifier",
"src": "6237:5:40"
},
{
"kind": "number",
"nativeSrc": "6244:4:40",
"nodeType": "YulLiteral",
"src": "6244:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6233:3:40",
"nodeType": "YulIdentifier",
"src": "6233:3:40"
},
"nativeSrc": "6233:16:40",
"nodeType": "YulFunctionCall",
"src": "6233:16:40"
},
{
"name": "pos",
"nativeSrc": "6251:3:40",
"nodeType": "YulIdentifier",
"src": "6251:3:40"
},
{
"name": "length",
"nativeSrc": "6256:6:40",
"nodeType": "YulIdentifier",
"src": "6256:6:40"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "6198:34:40",
"nodeType": "YulIdentifier",
"src": "6198:34:40"
},
"nativeSrc": "6198:65:40",
"nodeType": "YulFunctionCall",
"src": "6198:65:40"
},
"nativeSrc": "6198:65:40",
"nodeType": "YulExpressionStatement",
"src": "6198:65:40"
},
{
"nativeSrc": "6272:46:40",
"nodeType": "YulAssignment",
"src": "6272:46:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6283:3:40",
"nodeType": "YulIdentifier",
"src": "6283:3:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "6310:6:40",
"nodeType": "YulIdentifier",
"src": "6310:6:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "6288:21:40",
"nodeType": "YulIdentifier",
"src": "6288:21:40"
},
"nativeSrc": "6288:29:40",
"nodeType": "YulFunctionCall",
"src": "6288:29:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6279:3:40",
"nodeType": "YulIdentifier",
"src": "6279:3:40"
},
"nativeSrc": "6279:39:40",
"nodeType": "YulFunctionCall",
"src": "6279:39:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "6272:3:40",
"nodeType": "YulIdentifier",
"src": "6272:3:40"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr",
"nativeSrc": "5967:357:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "6030:5:40",
"nodeType": "YulTypedName",
"src": "6030:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "6037:3:40",
"nodeType": "YulTypedName",
"src": "6037:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "6045:3:40",
"nodeType": "YulTypedName",
"src": "6045:3:40",
"type": ""
}
],
"src": "5967:357:40"
},
{
"body": {
"nativeSrc": "6504:494:40",
"nodeType": "YulBlock",
"src": "6504:494:40",
"statements": [
{
"nativeSrc": "6514:26:40",
"nodeType": "YulVariableDeclaration",
"src": "6514:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6530:3:40",
"nodeType": "YulIdentifier",
"src": "6530:3:40"
},
{
"kind": "number",
"nativeSrc": "6535:4:40",
"nodeType": "YulLiteral",
"src": "6535:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6526:3:40",
"nodeType": "YulIdentifier",
"src": "6526:3:40"
},
"nativeSrc": "6526:14:40",
"nodeType": "YulFunctionCall",
"src": "6526:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "6518:4:40",
"nodeType": "YulTypedName",
"src": "6518:4:40",
"type": ""
}
]
},
{
"nativeSrc": "6550:169:40",
"nodeType": "YulBlock",
"src": "6550:169:40",
"statements": [
{
"nativeSrc": "6592:43:40",
"nodeType": "YulVariableDeclaration",
"src": "6592:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "6622:5:40",
"nodeType": "YulIdentifier",
"src": "6622:5:40"
},
{
"kind": "number",
"nativeSrc": "6629:4:40",
"nodeType": "YulLiteral",
"src": "6629:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6618:3:40",
"nodeType": "YulIdentifier",
"src": "6618:3:40"
},
"nativeSrc": "6618:16:40",
"nodeType": "YulFunctionCall",
"src": "6618:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "6612:5:40",
"nodeType": "YulIdentifier",
"src": "6612:5:40"
},
"nativeSrc": "6612:23:40",
"nodeType": "YulFunctionCall",
"src": "6612:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "6596:12:40",
"nodeType": "YulTypedName",
"src": "6596:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "6680:12:40",
"nodeType": "YulIdentifier",
"src": "6680:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "6698:3:40",
"nodeType": "YulIdentifier",
"src": "6698:3:40"
},
{
"kind": "number",
"nativeSrc": "6703:4:40",
"nodeType": "YulLiteral",
"src": "6703:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6694:3:40",
"nodeType": "YulIdentifier",
"src": "6694:3:40"
},
"nativeSrc": "6694:14:40",
"nodeType": "YulFunctionCall",
"src": "6694:14:40"
}
],
"functionName": {
"name": "abi_encode_t_int256_to_t_int256",
"nativeSrc": "6648:31:40",
"nodeType": "YulIdentifier",
"src": "6648:31:40"
},
"nativeSrc": "6648:61:40",
"nodeType": "YulFunctionCall",
"src": "6648:61:40"
},
"nativeSrc": "6648:61:40",
"nodeType": "YulExpressionStatement",
"src": "6648:61:40"
}
]
},
{
"nativeSrc": "6729:242:40",
"nodeType": "YulBlock",
"src": "6729:242:40",
"statements": [
{
"nativeSrc": "6771:43:40",
"nodeType": "YulVariableDeclaration",
"src": "6771:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "6801:5:40",
"nodeType": "YulIdentifier",
"src": "6801:5:40"
},
{
"kind": "number",
"nativeSrc": "6808:4:40",
"nodeType": "YulLiteral",
"src": "6808:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6797:3:40",
"nodeType": "YulIdentifier",
"src": "6797:3:40"
},
"nativeSrc": "6797:16:40",
"nodeType": "YulFunctionCall",
"src": "6797:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "6791:5:40",
"nodeType": "YulIdentifier",
"src": "6791:5:40"
},
"nativeSrc": "6791:23:40",
"nodeType": "YulFunctionCall",
"src": "6791:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "6775:12:40",
"nodeType": "YulTypedName",
"src": "6775:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nativeSrc": "6839:3:40",
"nodeType": "YulIdentifier",
"src": "6839:3:40"
},
{
"kind": "number",
"nativeSrc": "6844:4:40",
"nodeType": "YulLiteral",
"src": "6844:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6835:3:40",
"nodeType": "YulIdentifier",
"src": "6835:3:40"
},
"nativeSrc": "6835:14:40",
"nodeType": "YulFunctionCall",
"src": "6835:14:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "6855:4:40",
"nodeType": "YulIdentifier",
"src": "6855:4:40"
},
{
"name": "pos",
"nativeSrc": "6861:3:40",
"nodeType": "YulIdentifier",
"src": "6861:3:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "6851:3:40",
"nodeType": "YulIdentifier",
"src": "6851:3:40"
},
"nativeSrc": "6851:14:40",
"nodeType": "YulFunctionCall",
"src": "6851:14:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6828:6:40",
"nodeType": "YulIdentifier",
"src": "6828:6:40"
},
"nativeSrc": "6828:38:40",
"nodeType": "YulFunctionCall",
"src": "6828:38:40"
},
"nativeSrc": "6828:38:40",
"nodeType": "YulExpressionStatement",
"src": "6828:38:40"
},
{
"nativeSrc": "6879:81:40",
"nodeType": "YulAssignment",
"src": "6879:81:40",
"value": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "6941:12:40",
"nodeType": "YulIdentifier",
"src": "6941:12:40"
},
{
"name": "tail",
"nativeSrc": "6955:4:40",
"nodeType": "YulIdentifier",
"src": "6955:4:40"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr",
"nativeSrc": "6887:53:40",
"nodeType": "YulIdentifier",
"src": "6887:53:40"
},
"nativeSrc": "6887:73:40",
"nodeType": "YulFunctionCall",
"src": "6887:73:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "6879:4:40",
"nodeType": "YulIdentifier",
"src": "6879:4:40"
}
]
}
]
},
{
"nativeSrc": "6981:11:40",
"nodeType": "YulAssignment",
"src": "6981:11:40",
"value": {
"name": "tail",
"nativeSrc": "6988:4:40",
"nodeType": "YulIdentifier",
"src": "6988:4:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "6981:3:40",
"nodeType": "YulIdentifier",
"src": "6981:3:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr",
"nativeSrc": "6380:618:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "6483:5:40",
"nodeType": "YulTypedName",
"src": "6483:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "6490:3:40",
"nodeType": "YulTypedName",
"src": "6490:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "6499:3:40",
"nodeType": "YulTypedName",
"src": "6499:3:40",
"type": ""
}
],
"src": "6380:618:40"
},
{
"body": {
"nativeSrc": "7144:136:40",
"nodeType": "YulBlock",
"src": "7144:136:40",
"statements": [
{
"nativeSrc": "7154:120:40",
"nodeType": "YulAssignment",
"src": "7154:120:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "7262:6:40",
"nodeType": "YulIdentifier",
"src": "7262:6:40"
},
{
"name": "pos",
"nativeSrc": "7270:3:40",
"nodeType": "YulIdentifier",
"src": "7270:3:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr",
"nativeSrc": "7168:93:40",
"nodeType": "YulIdentifier",
"src": "7168:93:40"
},
"nativeSrc": "7168:106:40",
"nodeType": "YulFunctionCall",
"src": "7168:106:40"
},
"variableNames": [
{
"name": "updatedPos",
"nativeSrc": "7154:10:40",
"nodeType": "YulIdentifier",
"src": "7154:10:40"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr",
"nativeSrc": "7004:276:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nativeSrc": "7117:6:40",
"nodeType": "YulTypedName",
"src": "7117:6:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "7125:3:40",
"nodeType": "YulTypedName",
"src": "7125:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nativeSrc": "7133:10:40",
"nodeType": "YulTypedName",
"src": "7133:10:40",
"type": ""
}
],
"src": "7004:276:40"
},
{
"body": {
"nativeSrc": "7391:38:40",
"nodeType": "YulBlock",
"src": "7391:38:40",
"statements": [
{
"nativeSrc": "7401:22:40",
"nodeType": "YulAssignment",
"src": "7401:22:40",
"value": {
"arguments": [
{
"name": "ptr",
"nativeSrc": "7413:3:40",
"nodeType": "YulIdentifier",
"src": "7413:3:40"
},
{
"kind": "number",
"nativeSrc": "7418:4:40",
"nodeType": "YulLiteral",
"src": "7418:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7409:3:40",
"nodeType": "YulIdentifier",
"src": "7409:3:40"
},
"nativeSrc": "7409:14:40",
"nodeType": "YulFunctionCall",
"src": "7409:14:40"
},
"variableNames": [
{
"name": "next",
"nativeSrc": "7401:4:40",
"nodeType": "YulIdentifier",
"src": "7401:4:40"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "7286:143:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "7378:3:40",
"nodeType": "YulTypedName",
"src": "7378:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nativeSrc": "7386:4:40",
"nodeType": "YulTypedName",
"src": "7386:4:40",
"type": ""
}
],
"src": "7286:143:40"
},
{
"body": {
"nativeSrc": "7673:967:40",
"nodeType": "YulBlock",
"src": "7673:967:40",
"statements": [
{
"nativeSrc": "7683:98:40",
"nodeType": "YulVariableDeclaration",
"src": "7683:98:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "7775:5:40",
"nodeType": "YulIdentifier",
"src": "7775:5:40"
}
],
"functionName": {
"name": "array_length_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "7697:77:40",
"nodeType": "YulIdentifier",
"src": "7697:77:40"
},
"nativeSrc": "7697:84:40",
"nodeType": "YulFunctionCall",
"src": "7697:84:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "7687:6:40",
"nodeType": "YulTypedName",
"src": "7687:6:40",
"type": ""
}
]
},
{
"nativeSrc": "7790:123:40",
"nodeType": "YulAssignment",
"src": "7790:123:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "7901:3:40",
"nodeType": "YulIdentifier",
"src": "7901:3:40"
},
{
"name": "length",
"nativeSrc": "7906:6:40",
"nodeType": "YulIdentifier",
"src": "7906:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack",
"nativeSrc": "7797:103:40",
"nodeType": "YulIdentifier",
"src": "7797:103:40"
},
"nativeSrc": "7797:116:40",
"nodeType": "YulFunctionCall",
"src": "7797:116:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "7790:3:40",
"nodeType": "YulIdentifier",
"src": "7790:3:40"
}
]
},
{
"nativeSrc": "7922:20:40",
"nodeType": "YulVariableDeclaration",
"src": "7922:20:40",
"value": {
"name": "pos",
"nativeSrc": "7939:3:40",
"nodeType": "YulIdentifier",
"src": "7939:3:40"
},
"variables": [
{
"name": "headStart",
"nativeSrc": "7926:9:40",
"nodeType": "YulTypedName",
"src": "7926:9:40",
"type": ""
}
]
},
{
"nativeSrc": "7951:39:40",
"nodeType": "YulVariableDeclaration",
"src": "7951:39:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "7967:3:40",
"nodeType": "YulIdentifier",
"src": "7967:3:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "7976:6:40",
"nodeType": "YulIdentifier",
"src": "7976:6:40"
},
{
"kind": "number",
"nativeSrc": "7984:4:40",
"nodeType": "YulLiteral",
"src": "7984:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "7972:3:40",
"nodeType": "YulIdentifier",
"src": "7972:3:40"
},
"nativeSrc": "7972:17:40",
"nodeType": "YulFunctionCall",
"src": "7972:17:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7963:3:40",
"nodeType": "YulIdentifier",
"src": "7963:3:40"
},
"nativeSrc": "7963:27:40",
"nodeType": "YulFunctionCall",
"src": "7963:27:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "7955:4:40",
"nodeType": "YulTypedName",
"src": "7955:4:40",
"type": ""
}
]
},
{
"nativeSrc": "7999:101:40",
"nodeType": "YulVariableDeclaration",
"src": "7999:101:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "8094:5:40",
"nodeType": "YulIdentifier",
"src": "8094:5:40"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "8014:79:40",
"nodeType": "YulIdentifier",
"src": "8014:79:40"
},
"nativeSrc": "8014:86:40",
"nodeType": "YulFunctionCall",
"src": "8014:86:40"
},
"variables": [
{
"name": "baseRef",
"nativeSrc": "8003:7:40",
"nodeType": "YulTypedName",
"src": "8003:7:40",
"type": ""
}
]
},
{
"nativeSrc": "8109:21:40",
"nodeType": "YulVariableDeclaration",
"src": "8109:21:40",
"value": {
"name": "baseRef",
"nativeSrc": "8123:7:40",
"nodeType": "YulIdentifier",
"src": "8123:7:40"
},
"variables": [
{
"name": "srcPtr",
"nativeSrc": "8113:6:40",
"nodeType": "YulTypedName",
"src": "8113:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "8199:396:40",
"nodeType": "YulBlock",
"src": "8199:396:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "8220:3:40",
"nodeType": "YulIdentifier",
"src": "8220:3:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "8229:4:40",
"nodeType": "YulIdentifier",
"src": "8229:4:40"
},
{
"name": "headStart",
"nativeSrc": "8235:9:40",
"nodeType": "YulIdentifier",
"src": "8235:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "8225:3:40",
"nodeType": "YulIdentifier",
"src": "8225:3:40"
},
"nativeSrc": "8225:20:40",
"nodeType": "YulFunctionCall",
"src": "8225:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8213:6:40",
"nodeType": "YulIdentifier",
"src": "8213:6:40"
},
"nativeSrc": "8213:33:40",
"nodeType": "YulFunctionCall",
"src": "8213:33:40"
},
"nativeSrc": "8213:33:40",
"nodeType": "YulExpressionStatement",
"src": "8213:33:40"
},
{
"nativeSrc": "8259:34:40",
"nodeType": "YulVariableDeclaration",
"src": "8259:34:40",
"value": {
"arguments": [
{
"name": "srcPtr",
"nativeSrc": "8286:6:40",
"nodeType": "YulIdentifier",
"src": "8286:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8280:5:40",
"nodeType": "YulIdentifier",
"src": "8280:5:40"
},
"nativeSrc": "8280:13:40",
"nodeType": "YulFunctionCall",
"src": "8280:13:40"
},
"variables": [
{
"name": "elementValue0",
"nativeSrc": "8263:13:40",
"nodeType": "YulTypedName",
"src": "8263:13:40",
"type": ""
}
]
},
{
"nativeSrc": "8306:132:40",
"nodeType": "YulAssignment",
"src": "8306:132:40",
"value": {
"arguments": [
{
"name": "elementValue0",
"nativeSrc": "8418:13:40",
"nodeType": "YulIdentifier",
"src": "8418:13:40"
},
{
"name": "tail",
"nativeSrc": "8433:4:40",
"nodeType": "YulIdentifier",
"src": "8433:4:40"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr",
"nativeSrc": "8314:103:40",
"nodeType": "YulIdentifier",
"src": "8314:103:40"
},
"nativeSrc": "8314:124:40",
"nodeType": "YulFunctionCall",
"src": "8314:124:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "8306:4:40",
"nodeType": "YulIdentifier",
"src": "8306:4:40"
}
]
},
{
"nativeSrc": "8451:100:40",
"nodeType": "YulAssignment",
"src": "8451:100:40",
"value": {
"arguments": [
{
"name": "srcPtr",
"nativeSrc": "8544:6:40",
"nodeType": "YulIdentifier",
"src": "8544:6:40"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "8461:82:40",
"nodeType": "YulIdentifier",
"src": "8461:82:40"
},
"nativeSrc": "8461:90:40",
"nodeType": "YulFunctionCall",
"src": "8461:90:40"
},
"variableNames": [
{
"name": "srcPtr",
"nativeSrc": "8451:6:40",
"nodeType": "YulIdentifier",
"src": "8451:6:40"
}
]
},
{
"nativeSrc": "8564:21:40",
"nodeType": "YulAssignment",
"src": "8564:21:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "8575:3:40",
"nodeType": "YulIdentifier",
"src": "8575:3:40"
},
{
"kind": "number",
"nativeSrc": "8580:4:40",
"nodeType": "YulLiteral",
"src": "8580:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8571:3:40",
"nodeType": "YulIdentifier",
"src": "8571:3:40"
},
"nativeSrc": "8571:14:40",
"nodeType": "YulFunctionCall",
"src": "8571:14:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "8564:3:40",
"nodeType": "YulIdentifier",
"src": "8564:3:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "8161:1:40",
"nodeType": "YulIdentifier",
"src": "8161:1:40"
},
{
"name": "length",
"nativeSrc": "8164:6:40",
"nodeType": "YulIdentifier",
"src": "8164:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "8158:2:40",
"nodeType": "YulIdentifier",
"src": "8158:2:40"
},
"nativeSrc": "8158:13:40",
"nodeType": "YulFunctionCall",
"src": "8158:13:40"
},
"nativeSrc": "8139:456:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "8172:18:40",
"nodeType": "YulBlock",
"src": "8172:18:40",
"statements": [
{
"nativeSrc": "8174:14:40",
"nodeType": "YulAssignment",
"src": "8174:14:40",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "8183:1:40",
"nodeType": "YulIdentifier",
"src": "8183:1:40"
},
{
"kind": "number",
"nativeSrc": "8186:1:40",
"nodeType": "YulLiteral",
"src": "8186:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8179:3:40",
"nodeType": "YulIdentifier",
"src": "8179:3:40"
},
"nativeSrc": "8179:9:40",
"nodeType": "YulFunctionCall",
"src": "8179:9:40"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "8174:1:40",
"nodeType": "YulIdentifier",
"src": "8174:1:40"
}
]
}
]
},
"pre": {
"nativeSrc": "8143:14:40",
"nodeType": "YulBlock",
"src": "8143:14:40",
"statements": [
{
"nativeSrc": "8145:10:40",
"nodeType": "YulVariableDeclaration",
"src": "8145:10:40",
"value": {
"kind": "number",
"nativeSrc": "8154:1:40",
"nodeType": "YulLiteral",
"src": "8154:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "8149:1:40",
"nodeType": "YulTypedName",
"src": "8149:1:40",
"type": ""
}
]
}
]
},
"src": "8139:456:40"
},
{
"nativeSrc": "8604:11:40",
"nodeType": "YulAssignment",
"src": "8604:11:40",
"value": {
"name": "tail",
"nativeSrc": "8611:4:40",
"nodeType": "YulIdentifier",
"src": "8611:4:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "8604:3:40",
"nodeType": "YulIdentifier",
"src": "8604:3:40"
}
]
},
{
"nativeSrc": "8624:10:40",
"nodeType": "YulAssignment",
"src": "8624:10:40",
"value": {
"name": "pos",
"nativeSrc": "8631:3:40",
"nodeType": "YulIdentifier",
"src": "8631:3:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "8624:3:40",
"nodeType": "YulIdentifier",
"src": "8624:3:40"
}
]
}
]
},
"name": "abi_encode_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack",
"nativeSrc": "7489:1151:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "7652:5:40",
"nodeType": "YulTypedName",
"src": "7652:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "7659:3:40",
"nodeType": "YulTypedName",
"src": "7659:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "7668:3:40",
"nodeType": "YulTypedName",
"src": "7668:3:40",
"type": ""
}
],
"src": "7489:1151:40"
},
{
"body": {
"nativeSrc": "8814:411:40",
"nodeType": "YulBlock",
"src": "8814:411:40",
"statements": [
{
"nativeSrc": "8824:26:40",
"nodeType": "YulVariableDeclaration",
"src": "8824:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "8840:3:40",
"nodeType": "YulIdentifier",
"src": "8840:3:40"
},
{
"kind": "number",
"nativeSrc": "8845:4:40",
"nodeType": "YulLiteral",
"src": "8845:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8836:3:40",
"nodeType": "YulIdentifier",
"src": "8836:3:40"
},
"nativeSrc": "8836:14:40",
"nodeType": "YulFunctionCall",
"src": "8836:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "8828:4:40",
"nodeType": "YulTypedName",
"src": "8828:4:40",
"type": ""
}
]
},
{
"nativeSrc": "8860:172:40",
"nodeType": "YulBlock",
"src": "8860:172:40",
"statements": [
{
"nativeSrc": "8903:43:40",
"nodeType": "YulVariableDeclaration",
"src": "8903:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "8933:5:40",
"nodeType": "YulIdentifier",
"src": "8933:5:40"
},
{
"kind": "number",
"nativeSrc": "8940:4:40",
"nodeType": "YulLiteral",
"src": "8940:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8929:3:40",
"nodeType": "YulIdentifier",
"src": "8929:3:40"
},
"nativeSrc": "8929:16:40",
"nodeType": "YulFunctionCall",
"src": "8929:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8923:5:40",
"nodeType": "YulIdentifier",
"src": "8923:5:40"
},
"nativeSrc": "8923:23:40",
"nodeType": "YulFunctionCall",
"src": "8923:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "8907:12:40",
"nodeType": "YulTypedName",
"src": "8907:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "8993:12:40",
"nodeType": "YulIdentifier",
"src": "8993:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "9011:3:40",
"nodeType": "YulIdentifier",
"src": "9011:3:40"
},
{
"kind": "number",
"nativeSrc": "9016:4:40",
"nodeType": "YulLiteral",
"src": "9016:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9007:3:40",
"nodeType": "YulIdentifier",
"src": "9007:3:40"
},
"nativeSrc": "9007:14:40",
"nodeType": "YulFunctionCall",
"src": "9007:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "8959:33:40",
"nodeType": "YulIdentifier",
"src": "8959:33:40"
},
"nativeSrc": "8959:63:40",
"nodeType": "YulFunctionCall",
"src": "8959:63:40"
},
"nativeSrc": "8959:63:40",
"nodeType": "YulExpressionStatement",
"src": "8959:63:40"
}
]
},
{
"nativeSrc": "9042:176:40",
"nodeType": "YulBlock",
"src": "9042:176:40",
"statements": [
{
"nativeSrc": "9089:43:40",
"nodeType": "YulVariableDeclaration",
"src": "9089:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "9119:5:40",
"nodeType": "YulIdentifier",
"src": "9119:5:40"
},
{
"kind": "number",
"nativeSrc": "9126:4:40",
"nodeType": "YulLiteral",
"src": "9126:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9115:3:40",
"nodeType": "YulIdentifier",
"src": "9115:3:40"
},
"nativeSrc": "9115:16:40",
"nodeType": "YulFunctionCall",
"src": "9115:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "9109:5:40",
"nodeType": "YulIdentifier",
"src": "9109:5:40"
},
"nativeSrc": "9109:23:40",
"nodeType": "YulFunctionCall",
"src": "9109:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "9093:12:40",
"nodeType": "YulTypedName",
"src": "9093:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "9179:12:40",
"nodeType": "YulIdentifier",
"src": "9179:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "9197:3:40",
"nodeType": "YulIdentifier",
"src": "9197:3:40"
},
{
"kind": "number",
"nativeSrc": "9202:4:40",
"nodeType": "YulLiteral",
"src": "9202:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9193:3:40",
"nodeType": "YulIdentifier",
"src": "9193:3:40"
},
"nativeSrc": "9193:14:40",
"nodeType": "YulFunctionCall",
"src": "9193:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "9145:33:40",
"nodeType": "YulIdentifier",
"src": "9145:33:40"
},
"nativeSrc": "9145:63:40",
"nodeType": "YulFunctionCall",
"src": "9145:63:40"
},
"nativeSrc": "9145:63:40",
"nodeType": "YulExpressionStatement",
"src": "9145:63:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_OFTReceipt_$3398_memory_ptr_to_t_struct$_OFTReceipt_$3398_memory_ptr_fromStack",
"nativeSrc": "8692:533:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8801:5:40",
"nodeType": "YulTypedName",
"src": "8801:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "8808:3:40",
"nodeType": "YulTypedName",
"src": "8808:3:40",
"type": ""
}
],
"src": "8692:533:40"
},
{
"body": {
"nativeSrc": "9603:558:40",
"nodeType": "YulBlock",
"src": "9603:558:40",
"statements": [
{
"nativeSrc": "9613:27:40",
"nodeType": "YulAssignment",
"src": "9613:27:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "9625:9:40",
"nodeType": "YulIdentifier",
"src": "9625:9:40"
},
{
"kind": "number",
"nativeSrc": "9636:3:40",
"nodeType": "YulLiteral",
"src": "9636:3:40",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9621:3:40",
"nodeType": "YulIdentifier",
"src": "9621:3:40"
},
"nativeSrc": "9621:19:40",
"nodeType": "YulFunctionCall",
"src": "9621:19:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "9613:4:40",
"nodeType": "YulIdentifier",
"src": "9613:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "9746:6:40",
"nodeType": "YulIdentifier",
"src": "9746:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9759:9:40",
"nodeType": "YulIdentifier",
"src": "9759:9:40"
},
{
"kind": "number",
"nativeSrc": "9770:1:40",
"nodeType": "YulLiteral",
"src": "9770:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9755:3:40",
"nodeType": "YulIdentifier",
"src": "9755:3:40"
},
"nativeSrc": "9755:17:40",
"nodeType": "YulFunctionCall",
"src": "9755:17:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_OFTLimit_$3392_memory_ptr_to_t_struct$_OFTLimit_$3392_memory_ptr_fromStack",
"nativeSrc": "9650:95:40",
"nodeType": "YulIdentifier",
"src": "9650:95:40"
},
"nativeSrc": "9650:123:40",
"nodeType": "YulFunctionCall",
"src": "9650:123:40"
},
"nativeSrc": "9650:123:40",
"nodeType": "YulExpressionStatement",
"src": "9650:123:40"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9794:9:40",
"nodeType": "YulIdentifier",
"src": "9794:9:40"
},
{
"kind": "number",
"nativeSrc": "9805:2:40",
"nodeType": "YulLiteral",
"src": "9805:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9790:3:40",
"nodeType": "YulIdentifier",
"src": "9790:3:40"
},
"nativeSrc": "9790:18:40",
"nodeType": "YulFunctionCall",
"src": "9790:18:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "9814:4:40",
"nodeType": "YulIdentifier",
"src": "9814:4:40"
},
{
"name": "headStart",
"nativeSrc": "9820:9:40",
"nodeType": "YulIdentifier",
"src": "9820:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "9810:3:40",
"nodeType": "YulIdentifier",
"src": "9810:3:40"
},
"nativeSrc": "9810:20:40",
"nodeType": "YulFunctionCall",
"src": "9810:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "9783:6:40",
"nodeType": "YulIdentifier",
"src": "9783:6:40"
},
"nativeSrc": "9783:48:40",
"nodeType": "YulFunctionCall",
"src": "9783:48:40"
},
"nativeSrc": "9783:48:40",
"nodeType": "YulExpressionStatement",
"src": "9783:48:40"
},
{
"nativeSrc": "9840:176:40",
"nodeType": "YulAssignment",
"src": "9840:176:40",
"value": {
"arguments": [
{
"name": "value1",
"nativeSrc": "10002:6:40",
"nodeType": "YulIdentifier",
"src": "10002:6:40"
},
{
"name": "tail",
"nativeSrc": "10011:4:40",
"nodeType": "YulIdentifier",
"src": "10011:4:40"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack",
"nativeSrc": "9848:153:40",
"nodeType": "YulIdentifier",
"src": "9848:153:40"
},
"nativeSrc": "9848:168:40",
"nodeType": "YulFunctionCall",
"src": "9848:168:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "9840:4:40",
"nodeType": "YulIdentifier",
"src": "9840:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "10126:6:40",
"nodeType": "YulIdentifier",
"src": "10126:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "10139:9:40",
"nodeType": "YulIdentifier",
"src": "10139:9:40"
},
{
"kind": "number",
"nativeSrc": "10150:2:40",
"nodeType": "YulLiteral",
"src": "10150:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10135:3:40",
"nodeType": "YulIdentifier",
"src": "10135:3:40"
},
"nativeSrc": "10135:18:40",
"nodeType": "YulFunctionCall",
"src": "10135:18:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_OFTReceipt_$3398_memory_ptr_to_t_struct$_OFTReceipt_$3398_memory_ptr_fromStack",
"nativeSrc": "10026:99:40",
"nodeType": "YulIdentifier",
"src": "10026:99:40"
},
"nativeSrc": "10026:128:40",
"nodeType": "YulFunctionCall",
"src": "10026:128:40"
},
"nativeSrc": "10026:128:40",
"nodeType": "YulExpressionStatement",
"src": "10026:128:40"
}
]
},
"name": "abi_encode_tuple_t_struct$_OFTLimit_$3392_memory_ptr_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__to_t_struct$_OFTLimit_$3392_memory_ptr_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__fromStack_reversed",
"nativeSrc": "9231:930:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "9559:9:40",
"nodeType": "YulTypedName",
"src": "9559:9:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "9571:6:40",
"nodeType": "YulTypedName",
"src": "9571:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "9579:6:40",
"nodeType": "YulTypedName",
"src": "9579:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "9587:6:40",
"nodeType": "YulTypedName",
"src": "9587:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "9598:4:40",
"nodeType": "YulTypedName",
"src": "9598:4:40",
"type": ""
}
],
"src": "9231:930:40"
},
{
"body": {
"nativeSrc": "10232:53:40",
"nodeType": "YulBlock",
"src": "10232:53:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "10249:3:40",
"nodeType": "YulIdentifier",
"src": "10249:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "10272:5:40",
"nodeType": "YulIdentifier",
"src": "10272:5:40"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "10254:17:40",
"nodeType": "YulIdentifier",
"src": "10254:17:40"
},
"nativeSrc": "10254:24:40",
"nodeType": "YulFunctionCall",
"src": "10254:24:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "10242:6:40",
"nodeType": "YulIdentifier",
"src": "10242:6:40"
},
"nativeSrc": "10242:37:40",
"nodeType": "YulFunctionCall",
"src": "10242:37:40"
},
"nativeSrc": "10242:37:40",
"nodeType": "YulExpressionStatement",
"src": "10242:37:40"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "10167:118:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "10220:5:40",
"nodeType": "YulTypedName",
"src": "10220:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "10227:3:40",
"nodeType": "YulTypedName",
"src": "10227:3:40",
"type": ""
}
],
"src": "10167:118:40"
},
{
"body": {
"nativeSrc": "10389:124:40",
"nodeType": "YulBlock",
"src": "10389:124:40",
"statements": [
{
"nativeSrc": "10399:26:40",
"nodeType": "YulAssignment",
"src": "10399:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "10411:9:40",
"nodeType": "YulIdentifier",
"src": "10411:9:40"
},
{
"kind": "number",
"nativeSrc": "10422:2:40",
"nodeType": "YulLiteral",
"src": "10422:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10407:3:40",
"nodeType": "YulIdentifier",
"src": "10407:3:40"
},
"nativeSrc": "10407:18:40",
"nodeType": "YulFunctionCall",
"src": "10407:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "10399:4:40",
"nodeType": "YulIdentifier",
"src": "10399:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "10479:6:40",
"nodeType": "YulIdentifier",
"src": "10479:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "10492:9:40",
"nodeType": "YulIdentifier",
"src": "10492:9:40"
},
{
"kind": "number",
"nativeSrc": "10503:1:40",
"nodeType": "YulLiteral",
"src": "10503:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10488:3:40",
"nodeType": "YulIdentifier",
"src": "10488:3:40"
},
"nativeSrc": "10488:17:40",
"nodeType": "YulFunctionCall",
"src": "10488:17:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "10435:43:40",
"nodeType": "YulIdentifier",
"src": "10435:43:40"
},
"nativeSrc": "10435:71:40",
"nodeType": "YulFunctionCall",
"src": "10435:71:40"
},
"nativeSrc": "10435:71:40",
"nodeType": "YulExpressionStatement",
"src": "10435:71:40"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nativeSrc": "10291:222:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "10361:9:40",
"nodeType": "YulTypedName",
"src": "10361:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "10373:6:40",
"nodeType": "YulTypedName",
"src": "10373:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "10384:4:40",
"nodeType": "YulTypedName",
"src": "10384:4:40",
"type": ""
}
],
"src": "10291:222:40"
},
{
"body": {
"nativeSrc": "10616:152:40",
"nodeType": "YulBlock",
"src": "10616:152:40",
"statements": [
{
"body": {
"nativeSrc": "10655:83:40",
"nodeType": "YulBlock",
"src": "10655:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d",
"nativeSrc": "10657:77:40",
"nodeType": "YulIdentifier",
"src": "10657:77:40"
},
"nativeSrc": "10657:79:40",
"nodeType": "YulFunctionCall",
"src": "10657:79:40"
},
"nativeSrc": "10657:79:40",
"nodeType": "YulExpressionStatement",
"src": "10657:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nativeSrc": "10637:3:40",
"nodeType": "YulIdentifier",
"src": "10637:3:40"
},
{
"name": "offset",
"nativeSrc": "10642:6:40",
"nodeType": "YulIdentifier",
"src": "10642:6:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "10633:3:40",
"nodeType": "YulIdentifier",
"src": "10633:3:40"
},
"nativeSrc": "10633:16:40",
"nodeType": "YulFunctionCall",
"src": "10633:16:40"
},
{
"kind": "number",
"nativeSrc": "10651:2:40",
"nodeType": "YulLiteral",
"src": "10651:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "10629:3:40",
"nodeType": "YulIdentifier",
"src": "10629:3:40"
},
"nativeSrc": "10629:25:40",
"nodeType": "YulFunctionCall",
"src": "10629:25:40"
},
"nativeSrc": "10626:112:40",
"nodeType": "YulIf",
"src": "10626:112:40"
},
{
"nativeSrc": "10747:15:40",
"nodeType": "YulAssignment",
"src": "10747:15:40",
"value": {
"name": "offset",
"nativeSrc": "10756:6:40",
"nodeType": "YulIdentifier",
"src": "10756:6:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "10747:5:40",
"nodeType": "YulIdentifier",
"src": "10747:5:40"
}
]
}
]
},
"name": "abi_decode_t_struct$_Origin_$40_calldata_ptr",
"nativeSrc": "10540:228:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "10594:6:40",
"nodeType": "YulTypedName",
"src": "10594:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "10602:3:40",
"nodeType": "YulTypedName",
"src": "10602:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "10610:5:40",
"nodeType": "YulTypedName",
"src": "10610:5:40",
"type": ""
}
],
"src": "10540:228:40"
},
{
"body": {
"nativeSrc": "10819:32:40",
"nodeType": "YulBlock",
"src": "10819:32:40",
"statements": [
{
"nativeSrc": "10829:16:40",
"nodeType": "YulAssignment",
"src": "10829:16:40",
"value": {
"name": "value",
"nativeSrc": "10840:5:40",
"nodeType": "YulIdentifier",
"src": "10840:5:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "10829:7:40",
"nodeType": "YulIdentifier",
"src": "10829:7:40"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nativeSrc": "10774:77:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "10801:5:40",
"nodeType": "YulTypedName",
"src": "10801:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "10811:7:40",
"nodeType": "YulTypedName",
"src": "10811:7:40",
"type": ""
}
],
"src": "10774:77:40"
},
{
"body": {
"nativeSrc": "10900:79:40",
"nodeType": "YulBlock",
"src": "10900:79:40",
"statements": [
{
"body": {
"nativeSrc": "10957:16:40",
"nodeType": "YulBlock",
"src": "10957:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "10966:1:40",
"nodeType": "YulLiteral",
"src": "10966:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "10969:1:40",
"nodeType": "YulLiteral",
"src": "10969:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "10959:6:40",
"nodeType": "YulIdentifier",
"src": "10959:6:40"
},
"nativeSrc": "10959:12:40",
"nodeType": "YulFunctionCall",
"src": "10959:12:40"
},
"nativeSrc": "10959:12:40",
"nodeType": "YulExpressionStatement",
"src": "10959:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "10923:5:40",
"nodeType": "YulIdentifier",
"src": "10923:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "10948:5:40",
"nodeType": "YulIdentifier",
"src": "10948:5:40"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "10930:17:40",
"nodeType": "YulIdentifier",
"src": "10930:17:40"
},
"nativeSrc": "10930:24:40",
"nodeType": "YulFunctionCall",
"src": "10930:24:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "10920:2:40",
"nodeType": "YulIdentifier",
"src": "10920:2:40"
},
"nativeSrc": "10920:35:40",
"nodeType": "YulFunctionCall",
"src": "10920:35:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "10913:6:40",
"nodeType": "YulIdentifier",
"src": "10913:6:40"
},
"nativeSrc": "10913:43:40",
"nodeType": "YulFunctionCall",
"src": "10913:43:40"
},
"nativeSrc": "10910:63:40",
"nodeType": "YulIf",
"src": "10910:63:40"
}
]
},
"name": "validator_revert_t_bytes32",
"nativeSrc": "10857:122:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "10893:5:40",
"nodeType": "YulTypedName",
"src": "10893:5:40",
"type": ""
}
],
"src": "10857:122:40"
},
{
"body": {
"nativeSrc": "11037:87:40",
"nodeType": "YulBlock",
"src": "11037:87:40",
"statements": [
{
"nativeSrc": "11047:29:40",
"nodeType": "YulAssignment",
"src": "11047:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "11069:6:40",
"nodeType": "YulIdentifier",
"src": "11069:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "11056:12:40",
"nodeType": "YulIdentifier",
"src": "11056:12:40"
},
"nativeSrc": "11056:20:40",
"nodeType": "YulFunctionCall",
"src": "11056:20:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "11047:5:40",
"nodeType": "YulIdentifier",
"src": "11047:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "11112:5:40",
"nodeType": "YulIdentifier",
"src": "11112:5:40"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nativeSrc": "11085:26:40",
"nodeType": "YulIdentifier",
"src": "11085:26:40"
},
"nativeSrc": "11085:33:40",
"nodeType": "YulFunctionCall",
"src": "11085:33:40"
},
"nativeSrc": "11085:33:40",
"nodeType": "YulExpressionStatement",
"src": "11085:33:40"
}
]
},
"name": "abi_decode_t_bytes32",
"nativeSrc": "10985:139:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "11015:6:40",
"nodeType": "YulTypedName",
"src": "11015:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "11023:3:40",
"nodeType": "YulTypedName",
"src": "11023:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "11031:5:40",
"nodeType": "YulTypedName",
"src": "11031:5:40",
"type": ""
}
],
"src": "10985:139:40"
},
{
"body": {
"nativeSrc": "11219:28:40",
"nodeType": "YulBlock",
"src": "11219:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "11236:1:40",
"nodeType": "YulLiteral",
"src": "11236:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "11239:1:40",
"nodeType": "YulLiteral",
"src": "11239:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "11229:6:40",
"nodeType": "YulIdentifier",
"src": "11229:6:40"
},
"nativeSrc": "11229:12:40",
"nodeType": "YulFunctionCall",
"src": "11229:12:40"
},
"nativeSrc": "11229:12:40",
"nodeType": "YulExpressionStatement",
"src": "11229:12:40"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "11130:117:40",
"nodeType": "YulFunctionDefinition",
"src": "11130:117:40"
},
{
"body": {
"nativeSrc": "11342:28:40",
"nodeType": "YulBlock",
"src": "11342:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "11359:1:40",
"nodeType": "YulLiteral",
"src": "11359:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "11362:1:40",
"nodeType": "YulLiteral",
"src": "11362:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "11352:6:40",
"nodeType": "YulIdentifier",
"src": "11352:6:40"
},
"nativeSrc": "11352:12:40",
"nodeType": "YulFunctionCall",
"src": "11352:12:40"
},
"nativeSrc": "11352:12:40",
"nodeType": "YulExpressionStatement",
"src": "11352:12:40"
}
]
},
"name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
"nativeSrc": "11253:117:40",
"nodeType": "YulFunctionDefinition",
"src": "11253:117:40"
},
{
"body": {
"nativeSrc": "11465:28:40",
"nodeType": "YulBlock",
"src": "11465:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "11482:1:40",
"nodeType": "YulLiteral",
"src": "11482:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "11485:1:40",
"nodeType": "YulLiteral",
"src": "11485:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "11475:6:40",
"nodeType": "YulIdentifier",
"src": "11475:6:40"
},
"nativeSrc": "11475:12:40",
"nodeType": "YulFunctionCall",
"src": "11475:12:40"
},
"nativeSrc": "11475:12:40",
"nodeType": "YulExpressionStatement",
"src": "11475:12:40"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nativeSrc": "11376:117:40",
"nodeType": "YulFunctionDefinition",
"src": "11376:117:40"
},
{
"body": {
"nativeSrc": "11586:478:40",
"nodeType": "YulBlock",
"src": "11586:478:40",
"statements": [
{
"body": {
"nativeSrc": "11635:83:40",
"nodeType": "YulBlock",
"src": "11635:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "11637:77:40",
"nodeType": "YulIdentifier",
"src": "11637:77:40"
},
"nativeSrc": "11637:79:40",
"nodeType": "YulFunctionCall",
"src": "11637:79:40"
},
"nativeSrc": "11637:79:40",
"nodeType": "YulExpressionStatement",
"src": "11637:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "11614:6:40",
"nodeType": "YulIdentifier",
"src": "11614:6:40"
},
{
"kind": "number",
"nativeSrc": "11622:4:40",
"nodeType": "YulLiteral",
"src": "11622:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11610:3:40",
"nodeType": "YulIdentifier",
"src": "11610:3:40"
},
"nativeSrc": "11610:17:40",
"nodeType": "YulFunctionCall",
"src": "11610:17:40"
},
{
"name": "end",
"nativeSrc": "11629:3:40",
"nodeType": "YulIdentifier",
"src": "11629:3:40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "11606:3:40",
"nodeType": "YulIdentifier",
"src": "11606:3:40"
},
"nativeSrc": "11606:27:40",
"nodeType": "YulFunctionCall",
"src": "11606:27:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "11599:6:40",
"nodeType": "YulIdentifier",
"src": "11599:6:40"
},
"nativeSrc": "11599:35:40",
"nodeType": "YulFunctionCall",
"src": "11599:35:40"
},
"nativeSrc": "11596:122:40",
"nodeType": "YulIf",
"src": "11596:122:40"
},
{
"nativeSrc": "11727:30:40",
"nodeType": "YulAssignment",
"src": "11727:30:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "11750:6:40",
"nodeType": "YulIdentifier",
"src": "11750:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "11737:12:40",
"nodeType": "YulIdentifier",
"src": "11737:12:40"
},
"nativeSrc": "11737:20:40",
"nodeType": "YulFunctionCall",
"src": "11737:20:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "11727:6:40",
"nodeType": "YulIdentifier",
"src": "11727:6:40"
}
]
},
{
"body": {
"nativeSrc": "11800:83:40",
"nodeType": "YulBlock",
"src": "11800:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
"nativeSrc": "11802:77:40",
"nodeType": "YulIdentifier",
"src": "11802:77:40"
},
"nativeSrc": "11802:79:40",
"nodeType": "YulFunctionCall",
"src": "11802:79:40"
},
"nativeSrc": "11802:79:40",
"nodeType": "YulExpressionStatement",
"src": "11802:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "11772:6:40",
"nodeType": "YulIdentifier",
"src": "11772:6:40"
},
{
"kind": "number",
"nativeSrc": "11780:18:40",
"nodeType": "YulLiteral",
"src": "11780:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "11769:2:40",
"nodeType": "YulIdentifier",
"src": "11769:2:40"
},
"nativeSrc": "11769:30:40",
"nodeType": "YulFunctionCall",
"src": "11769:30:40"
},
"nativeSrc": "11766:117:40",
"nodeType": "YulIf",
"src": "11766:117:40"
},
{
"nativeSrc": "11892:29:40",
"nodeType": "YulAssignment",
"src": "11892:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "11908:6:40",
"nodeType": "YulIdentifier",
"src": "11908:6:40"
},
{
"kind": "number",
"nativeSrc": "11916:4:40",
"nodeType": "YulLiteral",
"src": "11916:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11904:3:40",
"nodeType": "YulIdentifier",
"src": "11904:3:40"
},
"nativeSrc": "11904:17:40",
"nodeType": "YulFunctionCall",
"src": "11904:17:40"
},
"variableNames": [
{
"name": "arrayPos",
"nativeSrc": "11892:8:40",
"nodeType": "YulIdentifier",
"src": "11892:8:40"
}
]
},
{
"body": {
"nativeSrc": "11975:83:40",
"nodeType": "YulBlock",
"src": "11975:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nativeSrc": "11977:77:40",
"nodeType": "YulIdentifier",
"src": "11977:77:40"
},
"nativeSrc": "11977:79:40",
"nodeType": "YulFunctionCall",
"src": "11977:79:40"
},
"nativeSrc": "11977:79:40",
"nodeType": "YulExpressionStatement",
"src": "11977:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "arrayPos",
"nativeSrc": "11940:8:40",
"nodeType": "YulIdentifier",
"src": "11940:8:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "11954:6:40",
"nodeType": "YulIdentifier",
"src": "11954:6:40"
},
{
"kind": "number",
"nativeSrc": "11962:4:40",
"nodeType": "YulLiteral",
"src": "11962:4:40",
"type": "",
"value": "0x01"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "11950:3:40",
"nodeType": "YulIdentifier",
"src": "11950:3:40"
},
"nativeSrc": "11950:17:40",
"nodeType": "YulFunctionCall",
"src": "11950:17:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11936:3:40",
"nodeType": "YulIdentifier",
"src": "11936:3:40"
},
"nativeSrc": "11936:32:40",
"nodeType": "YulFunctionCall",
"src": "11936:32:40"
},
{
"name": "end",
"nativeSrc": "11970:3:40",
"nodeType": "YulIdentifier",
"src": "11970:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "11933:2:40",
"nodeType": "YulIdentifier",
"src": "11933:2:40"
},
"nativeSrc": "11933:41:40",
"nodeType": "YulFunctionCall",
"src": "11933:41:40"
},
"nativeSrc": "11930:128:40",
"nodeType": "YulIf",
"src": "11930:128:40"
}
]
},
"name": "abi_decode_t_bytes_calldata_ptr",
"nativeSrc": "11512:552:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "11553:6:40",
"nodeType": "YulTypedName",
"src": "11553:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "11561:3:40",
"nodeType": "YulTypedName",
"src": "11561:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "arrayPos",
"nativeSrc": "11569:8:40",
"nodeType": "YulTypedName",
"src": "11569:8:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "11579:6:40",
"nodeType": "YulTypedName",
"src": "11579:6:40",
"type": ""
}
],
"src": "11512:552:40"
},
{
"body": {
"nativeSrc": "12266:1161:40",
"nodeType": "YulBlock",
"src": "12266:1161:40",
"statements": [
{
"body": {
"nativeSrc": "12313:83:40",
"nodeType": "YulBlock",
"src": "12313:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "12315:77:40",
"nodeType": "YulIdentifier",
"src": "12315:77:40"
},
"nativeSrc": "12315:79:40",
"nodeType": "YulFunctionCall",
"src": "12315:79:40"
},
"nativeSrc": "12315:79:40",
"nodeType": "YulExpressionStatement",
"src": "12315:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "12287:7:40",
"nodeType": "YulIdentifier",
"src": "12287:7:40"
},
{
"name": "headStart",
"nativeSrc": "12296:9:40",
"nodeType": "YulIdentifier",
"src": "12296:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "12283:3:40",
"nodeType": "YulIdentifier",
"src": "12283:3:40"
},
"nativeSrc": "12283:23:40",
"nodeType": "YulFunctionCall",
"src": "12283:23:40"
},
{
"kind": "number",
"nativeSrc": "12308:3:40",
"nodeType": "YulLiteral",
"src": "12308:3:40",
"type": "",
"value": "224"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "12279:3:40",
"nodeType": "YulIdentifier",
"src": "12279:3:40"
},
"nativeSrc": "12279:33:40",
"nodeType": "YulFunctionCall",
"src": "12279:33:40"
},
"nativeSrc": "12276:120:40",
"nodeType": "YulIf",
"src": "12276:120:40"
},
{
"nativeSrc": "12406:141:40",
"nodeType": "YulBlock",
"src": "12406:141:40",
"statements": [
{
"nativeSrc": "12421:15:40",
"nodeType": "YulVariableDeclaration",
"src": "12421:15:40",
"value": {
"kind": "number",
"nativeSrc": "12435:1:40",
"nodeType": "YulLiteral",
"src": "12435:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "12425:6:40",
"nodeType": "YulTypedName",
"src": "12425:6:40",
"type": ""
}
]
},
{
"nativeSrc": "12450:87:40",
"nodeType": "YulAssignment",
"src": "12450:87:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "12509:9:40",
"nodeType": "YulIdentifier",
"src": "12509:9:40"
},
{
"name": "offset",
"nativeSrc": "12520:6:40",
"nodeType": "YulIdentifier",
"src": "12520:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12505:3:40",
"nodeType": "YulIdentifier",
"src": "12505:3:40"
},
"nativeSrc": "12505:22:40",
"nodeType": "YulFunctionCall",
"src": "12505:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "12529:7:40",
"nodeType": "YulIdentifier",
"src": "12529:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_Origin_$40_calldata_ptr",
"nativeSrc": "12460:44:40",
"nodeType": "YulIdentifier",
"src": "12460:44:40"
},
"nativeSrc": "12460:77:40",
"nodeType": "YulFunctionCall",
"src": "12460:77:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "12450:6:40",
"nodeType": "YulIdentifier",
"src": "12450:6:40"
}
]
}
]
},
{
"nativeSrc": "12557:118:40",
"nodeType": "YulBlock",
"src": "12557:118:40",
"statements": [
{
"nativeSrc": "12572:16:40",
"nodeType": "YulVariableDeclaration",
"src": "12572:16:40",
"value": {
"kind": "number",
"nativeSrc": "12586:2:40",
"nodeType": "YulLiteral",
"src": "12586:2:40",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nativeSrc": "12576:6:40",
"nodeType": "YulTypedName",
"src": "12576:6:40",
"type": ""
}
]
},
{
"nativeSrc": "12602:63:40",
"nodeType": "YulAssignment",
"src": "12602:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "12637:9:40",
"nodeType": "YulIdentifier",
"src": "12637:9:40"
},
{
"name": "offset",
"nativeSrc": "12648:6:40",
"nodeType": "YulIdentifier",
"src": "12648:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12633:3:40",
"nodeType": "YulIdentifier",
"src": "12633:3:40"
},
"nativeSrc": "12633:22:40",
"nodeType": "YulFunctionCall",
"src": "12633:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "12657:7:40",
"nodeType": "YulIdentifier",
"src": "12657:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nativeSrc": "12612:20:40",
"nodeType": "YulIdentifier",
"src": "12612:20:40"
},
"nativeSrc": "12612:53:40",
"nodeType": "YulFunctionCall",
"src": "12612:53:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "12602:6:40",
"nodeType": "YulIdentifier",
"src": "12602:6:40"
}
]
}
]
},
{
"nativeSrc": "12685:298:40",
"nodeType": "YulBlock",
"src": "12685:298:40",
"statements": [
{
"nativeSrc": "12700:47:40",
"nodeType": "YulVariableDeclaration",
"src": "12700:47:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "12731:9:40",
"nodeType": "YulIdentifier",
"src": "12731:9:40"
},
{
"kind": "number",
"nativeSrc": "12742:3:40",
"nodeType": "YulLiteral",
"src": "12742:3:40",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12727:3:40",
"nodeType": "YulIdentifier",
"src": "12727:3:40"
},
"nativeSrc": "12727:19:40",
"nodeType": "YulFunctionCall",
"src": "12727:19:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "12714:12:40",
"nodeType": "YulIdentifier",
"src": "12714:12:40"
},
"nativeSrc": "12714:33:40",
"nodeType": "YulFunctionCall",
"src": "12714:33:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "12704:6:40",
"nodeType": "YulTypedName",
"src": "12704:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "12794:83:40",
"nodeType": "YulBlock",
"src": "12794:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "12796:77:40",
"nodeType": "YulIdentifier",
"src": "12796:77:40"
},
"nativeSrc": "12796:79:40",
"nodeType": "YulFunctionCall",
"src": "12796:79:40"
},
"nativeSrc": "12796:79:40",
"nodeType": "YulExpressionStatement",
"src": "12796:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "12766:6:40",
"nodeType": "YulIdentifier",
"src": "12766:6:40"
},
{
"kind": "number",
"nativeSrc": "12774:18:40",
"nodeType": "YulLiteral",
"src": "12774:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "12763:2:40",
"nodeType": "YulIdentifier",
"src": "12763:2:40"
},
"nativeSrc": "12763:30:40",
"nodeType": "YulFunctionCall",
"src": "12763:30:40"
},
"nativeSrc": "12760:117:40",
"nodeType": "YulIf",
"src": "12760:117:40"
},
{
"nativeSrc": "12891:82:40",
"nodeType": "YulAssignment",
"src": "12891:82:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "12945:9:40",
"nodeType": "YulIdentifier",
"src": "12945:9:40"
},
{
"name": "offset",
"nativeSrc": "12956:6:40",
"nodeType": "YulIdentifier",
"src": "12956:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12941:3:40",
"nodeType": "YulIdentifier",
"src": "12941:3:40"
},
"nativeSrc": "12941:22:40",
"nodeType": "YulFunctionCall",
"src": "12941:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "12965:7:40",
"nodeType": "YulIdentifier",
"src": "12965:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes_calldata_ptr",
"nativeSrc": "12909:31:40",
"nodeType": "YulIdentifier",
"src": "12909:31:40"
},
"nativeSrc": "12909:64:40",
"nodeType": "YulFunctionCall",
"src": "12909:64:40"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "12891:6:40",
"nodeType": "YulIdentifier",
"src": "12891:6:40"
},
{
"name": "value3",
"nativeSrc": "12899:6:40",
"nodeType": "YulIdentifier",
"src": "12899:6:40"
}
]
}
]
},
{
"nativeSrc": "12993:119:40",
"nodeType": "YulBlock",
"src": "12993:119:40",
"statements": [
{
"nativeSrc": "13008:17:40",
"nodeType": "YulVariableDeclaration",
"src": "13008:17:40",
"value": {
"kind": "number",
"nativeSrc": "13022:3:40",
"nodeType": "YulLiteral",
"src": "13022:3:40",
"type": "",
"value": "160"
},
"variables": [
{
"name": "offset",
"nativeSrc": "13012:6:40",
"nodeType": "YulTypedName",
"src": "13012:6:40",
"type": ""
}
]
},
{
"nativeSrc": "13039:63:40",
"nodeType": "YulAssignment",
"src": "13039:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13074:9:40",
"nodeType": "YulIdentifier",
"src": "13074:9:40"
},
{
"name": "offset",
"nativeSrc": "13085:6:40",
"nodeType": "YulIdentifier",
"src": "13085:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13070:3:40",
"nodeType": "YulIdentifier",
"src": "13070:3:40"
},
"nativeSrc": "13070:22:40",
"nodeType": "YulFunctionCall",
"src": "13070:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "13094:7:40",
"nodeType": "YulIdentifier",
"src": "13094:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "13049:20:40",
"nodeType": "YulIdentifier",
"src": "13049:20:40"
},
"nativeSrc": "13049:53:40",
"nodeType": "YulFunctionCall",
"src": "13049:53:40"
},
"variableNames": [
{
"name": "value4",
"nativeSrc": "13039:6:40",
"nodeType": "YulIdentifier",
"src": "13039:6:40"
}
]
}
]
},
{
"nativeSrc": "13122:298:40",
"nodeType": "YulBlock",
"src": "13122:298:40",
"statements": [
{
"nativeSrc": "13137:47:40",
"nodeType": "YulVariableDeclaration",
"src": "13137:47:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13168:9:40",
"nodeType": "YulIdentifier",
"src": "13168:9:40"
},
{
"kind": "number",
"nativeSrc": "13179:3:40",
"nodeType": "YulLiteral",
"src": "13179:3:40",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13164:3:40",
"nodeType": "YulIdentifier",
"src": "13164:3:40"
},
"nativeSrc": "13164:19:40",
"nodeType": "YulFunctionCall",
"src": "13164:19:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "13151:12:40",
"nodeType": "YulIdentifier",
"src": "13151:12:40"
},
"nativeSrc": "13151:33:40",
"nodeType": "YulFunctionCall",
"src": "13151:33:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "13141:6:40",
"nodeType": "YulTypedName",
"src": "13141:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "13231:83:40",
"nodeType": "YulBlock",
"src": "13231:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "13233:77:40",
"nodeType": "YulIdentifier",
"src": "13233:77:40"
},
"nativeSrc": "13233:79:40",
"nodeType": "YulFunctionCall",
"src": "13233:79:40"
},
"nativeSrc": "13233:79:40",
"nodeType": "YulExpressionStatement",
"src": "13233:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "13203:6:40",
"nodeType": "YulIdentifier",
"src": "13203:6:40"
},
{
"kind": "number",
"nativeSrc": "13211:18:40",
"nodeType": "YulLiteral",
"src": "13211:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "13200:2:40",
"nodeType": "YulIdentifier",
"src": "13200:2:40"
},
"nativeSrc": "13200:30:40",
"nodeType": "YulFunctionCall",
"src": "13200:30:40"
},
"nativeSrc": "13197:117:40",
"nodeType": "YulIf",
"src": "13197:117:40"
},
{
"nativeSrc": "13328:82:40",
"nodeType": "YulAssignment",
"src": "13328:82:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13382:9:40",
"nodeType": "YulIdentifier",
"src": "13382:9:40"
},
{
"name": "offset",
"nativeSrc": "13393:6:40",
"nodeType": "YulIdentifier",
"src": "13393:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13378:3:40",
"nodeType": "YulIdentifier",
"src": "13378:3:40"
},
"nativeSrc": "13378:22:40",
"nodeType": "YulFunctionCall",
"src": "13378:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "13402:7:40",
"nodeType": "YulIdentifier",
"src": "13402:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes_calldata_ptr",
"nativeSrc": "13346:31:40",
"nodeType": "YulIdentifier",
"src": "13346:31:40"
},
"nativeSrc": "13346:64:40",
"nodeType": "YulFunctionCall",
"src": "13346:64:40"
},
"variableNames": [
{
"name": "value5",
"nativeSrc": "13328:6:40",
"nodeType": "YulIdentifier",
"src": "13328:6:40"
},
{
"name": "value6",
"nativeSrc": "13336:6:40",
"nodeType": "YulIdentifier",
"src": "13336:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_Origin_$40_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr",
"nativeSrc": "12070:1357:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "12188:9:40",
"nodeType": "YulTypedName",
"src": "12188:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "12199:7:40",
"nodeType": "YulTypedName",
"src": "12199:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "12211:6:40",
"nodeType": "YulTypedName",
"src": "12211:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "12219:6:40",
"nodeType": "YulTypedName",
"src": "12219:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "12227:6:40",
"nodeType": "YulTypedName",
"src": "12227:6:40",
"type": ""
},
{
"name": "value3",
"nativeSrc": "12235:6:40",
"nodeType": "YulTypedName",
"src": "12235:6:40",
"type": ""
},
{
"name": "value4",
"nativeSrc": "12243:6:40",
"nodeType": "YulTypedName",
"src": "12243:6:40",
"type": ""
},
{
"name": "value5",
"nativeSrc": "12251:6:40",
"nodeType": "YulTypedName",
"src": "12251:6:40",
"type": ""
},
{
"name": "value6",
"nativeSrc": "12259:6:40",
"nodeType": "YulTypedName",
"src": "12259:6:40",
"type": ""
}
],
"src": "12070:1357:40"
},
{
"body": {
"nativeSrc": "13477:45:40",
"nodeType": "YulBlock",
"src": "13477:45:40",
"statements": [
{
"nativeSrc": "13487:29:40",
"nodeType": "YulAssignment",
"src": "13487:29:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "13502:5:40",
"nodeType": "YulIdentifier",
"src": "13502:5:40"
},
{
"kind": "number",
"nativeSrc": "13509:6:40",
"nodeType": "YulLiteral",
"src": "13509:6:40",
"type": "",
"value": "0xffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "13498:3:40",
"nodeType": "YulIdentifier",
"src": "13498:3:40"
},
"nativeSrc": "13498:18:40",
"nodeType": "YulFunctionCall",
"src": "13498:18:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "13487:7:40",
"nodeType": "YulIdentifier",
"src": "13487:7:40"
}
]
}
]
},
"name": "cleanup_t_uint16",
"nativeSrc": "13433:89:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13459:5:40",
"nodeType": "YulTypedName",
"src": "13459:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "13469:7:40",
"nodeType": "YulTypedName",
"src": "13469:7:40",
"type": ""
}
],
"src": "13433:89:40"
},
{
"body": {
"nativeSrc": "13591:52:40",
"nodeType": "YulBlock",
"src": "13591:52:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "13608:3:40",
"nodeType": "YulIdentifier",
"src": "13608:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "13630:5:40",
"nodeType": "YulIdentifier",
"src": "13630:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint16",
"nativeSrc": "13613:16:40",
"nodeType": "YulIdentifier",
"src": "13613:16:40"
},
"nativeSrc": "13613:23:40",
"nodeType": "YulFunctionCall",
"src": "13613:23:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "13601:6:40",
"nodeType": "YulIdentifier",
"src": "13601:6:40"
},
"nativeSrc": "13601:36:40",
"nodeType": "YulFunctionCall",
"src": "13601:36:40"
},
"nativeSrc": "13601:36:40",
"nodeType": "YulExpressionStatement",
"src": "13601:36:40"
}
]
},
"name": "abi_encode_t_uint16_to_t_uint16_fromStack",
"nativeSrc": "13528:115:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13579:5:40",
"nodeType": "YulTypedName",
"src": "13579:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "13586:3:40",
"nodeType": "YulTypedName",
"src": "13586:3:40",
"type": ""
}
],
"src": "13528:115:40"
},
{
"body": {
"nativeSrc": "13745:122:40",
"nodeType": "YulBlock",
"src": "13745:122:40",
"statements": [
{
"nativeSrc": "13755:26:40",
"nodeType": "YulAssignment",
"src": "13755:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "13767:9:40",
"nodeType": "YulIdentifier",
"src": "13767:9:40"
},
{
"kind": "number",
"nativeSrc": "13778:2:40",
"nodeType": "YulLiteral",
"src": "13778:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13763:3:40",
"nodeType": "YulIdentifier",
"src": "13763:3:40"
},
"nativeSrc": "13763:18:40",
"nodeType": "YulFunctionCall",
"src": "13763:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "13755:4:40",
"nodeType": "YulIdentifier",
"src": "13755:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "13833:6:40",
"nodeType": "YulIdentifier",
"src": "13833:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13846:9:40",
"nodeType": "YulIdentifier",
"src": "13846:9:40"
},
{
"kind": "number",
"nativeSrc": "13857:1:40",
"nodeType": "YulLiteral",
"src": "13857:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13842:3:40",
"nodeType": "YulIdentifier",
"src": "13842:3:40"
},
"nativeSrc": "13842:17:40",
"nodeType": "YulFunctionCall",
"src": "13842:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint16_to_t_uint16_fromStack",
"nativeSrc": "13791:41:40",
"nodeType": "YulIdentifier",
"src": "13791:41:40"
},
"nativeSrc": "13791:69:40",
"nodeType": "YulFunctionCall",
"src": "13791:69:40"
},
"nativeSrc": "13791:69:40",
"nodeType": "YulExpressionStatement",
"src": "13791:69:40"
}
]
},
"name": "abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed",
"nativeSrc": "13649:218:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "13717:9:40",
"nodeType": "YulTypedName",
"src": "13717:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "13729:6:40",
"nodeType": "YulTypedName",
"src": "13729:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "13740:4:40",
"nodeType": "YulTypedName",
"src": "13740:4:40",
"type": ""
}
],
"src": "13649:218:40"
},
{
"body": {
"nativeSrc": "13917:105:40",
"nodeType": "YulBlock",
"src": "13917:105:40",
"statements": [
{
"nativeSrc": "13927:89:40",
"nodeType": "YulAssignment",
"src": "13927:89:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "13942:5:40",
"nodeType": "YulIdentifier",
"src": "13942:5:40"
},
{
"kind": "number",
"nativeSrc": "13949:66:40",
"nodeType": "YulLiteral",
"src": "13949:66:40",
"type": "",
"value": "0xffffffff00000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nativeSrc": "13938:3:40",
"nodeType": "YulIdentifier",
"src": "13938:3:40"
},
"nativeSrc": "13938:78:40",
"nodeType": "YulFunctionCall",
"src": "13938:78:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "13927:7:40",
"nodeType": "YulIdentifier",
"src": "13927:7:40"
}
]
}
]
},
"name": "cleanup_t_bytes4",
"nativeSrc": "13873:149:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13899:5:40",
"nodeType": "YulTypedName",
"src": "13899:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "13909:7:40",
"nodeType": "YulTypedName",
"src": "13909:7:40",
"type": ""
}
],
"src": "13873:149:40"
},
{
"body": {
"nativeSrc": "14091:52:40",
"nodeType": "YulBlock",
"src": "14091:52:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "14108:3:40",
"nodeType": "YulIdentifier",
"src": "14108:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "14130:5:40",
"nodeType": "YulIdentifier",
"src": "14130:5:40"
}
],
"functionName": {
"name": "cleanup_t_bytes4",
"nativeSrc": "14113:16:40",
"nodeType": "YulIdentifier",
"src": "14113:16:40"
},
"nativeSrc": "14113:23:40",
"nodeType": "YulFunctionCall",
"src": "14113:23:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "14101:6:40",
"nodeType": "YulIdentifier",
"src": "14101:6:40"
},
"nativeSrc": "14101:36:40",
"nodeType": "YulFunctionCall",
"src": "14101:36:40"
},
"nativeSrc": "14101:36:40",
"nodeType": "YulExpressionStatement",
"src": "14101:36:40"
}
]
},
"name": "abi_encode_t_bytes4_to_t_bytes4_fromStack",
"nativeSrc": "14028:115:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "14079:5:40",
"nodeType": "YulTypedName",
"src": "14079:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "14086:3:40",
"nodeType": "YulTypedName",
"src": "14086:3:40",
"type": ""
}
],
"src": "14028:115:40"
},
{
"body": {
"nativeSrc": "14193:57:40",
"nodeType": "YulBlock",
"src": "14193:57:40",
"statements": [
{
"nativeSrc": "14203:41:40",
"nodeType": "YulAssignment",
"src": "14203:41:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "14218:5:40",
"nodeType": "YulIdentifier",
"src": "14218:5:40"
},
{
"kind": "number",
"nativeSrc": "14225:18:40",
"nodeType": "YulLiteral",
"src": "14225:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "14214:3:40",
"nodeType": "YulIdentifier",
"src": "14214:3:40"
},
"nativeSrc": "14214:30:40",
"nodeType": "YulFunctionCall",
"src": "14214:30:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "14203:7:40",
"nodeType": "YulIdentifier",
"src": "14203:7:40"
}
]
}
]
},
"name": "cleanup_t_uint64",
"nativeSrc": "14149:101:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "14175:5:40",
"nodeType": "YulTypedName",
"src": "14175:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "14185:7:40",
"nodeType": "YulTypedName",
"src": "14185:7:40",
"type": ""
}
],
"src": "14149:101:40"
},
{
"body": {
"nativeSrc": "14319:52:40",
"nodeType": "YulBlock",
"src": "14319:52:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "14336:3:40",
"nodeType": "YulIdentifier",
"src": "14336:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "14358:5:40",
"nodeType": "YulIdentifier",
"src": "14358:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint64",
"nativeSrc": "14341:16:40",
"nodeType": "YulIdentifier",
"src": "14341:16:40"
},
"nativeSrc": "14341:23:40",
"nodeType": "YulFunctionCall",
"src": "14341:23:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "14329:6:40",
"nodeType": "YulIdentifier",
"src": "14329:6:40"
},
"nativeSrc": "14329:36:40",
"nodeType": "YulFunctionCall",
"src": "14329:36:40"
},
"nativeSrc": "14329:36:40",
"nodeType": "YulExpressionStatement",
"src": "14329:36:40"
}
]
},
"name": "abi_encode_t_uint64_to_t_uint64_fromStack",
"nativeSrc": "14256:115:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "14307:5:40",
"nodeType": "YulTypedName",
"src": "14307:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "14314:3:40",
"nodeType": "YulTypedName",
"src": "14314:3:40",
"type": ""
}
],
"src": "14256:115:40"
},
{
"body": {
"nativeSrc": "14499:202:40",
"nodeType": "YulBlock",
"src": "14499:202:40",
"statements": [
{
"nativeSrc": "14509:26:40",
"nodeType": "YulAssignment",
"src": "14509:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "14521:9:40",
"nodeType": "YulIdentifier",
"src": "14521:9:40"
},
{
"kind": "number",
"nativeSrc": "14532:2:40",
"nodeType": "YulLiteral",
"src": "14532:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14517:3:40",
"nodeType": "YulIdentifier",
"src": "14517:3:40"
},
"nativeSrc": "14517:18:40",
"nodeType": "YulFunctionCall",
"src": "14517:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "14509:4:40",
"nodeType": "YulIdentifier",
"src": "14509:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "14587:6:40",
"nodeType": "YulIdentifier",
"src": "14587:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "14600:9:40",
"nodeType": "YulIdentifier",
"src": "14600:9:40"
},
{
"kind": "number",
"nativeSrc": "14611:1:40",
"nodeType": "YulLiteral",
"src": "14611:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14596:3:40",
"nodeType": "YulIdentifier",
"src": "14596:3:40"
},
"nativeSrc": "14596:17:40",
"nodeType": "YulFunctionCall",
"src": "14596:17:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes4_to_t_bytes4_fromStack",
"nativeSrc": "14545:41:40",
"nodeType": "YulIdentifier",
"src": "14545:41:40"
},
"nativeSrc": "14545:69:40",
"nodeType": "YulFunctionCall",
"src": "14545:69:40"
},
"nativeSrc": "14545:69:40",
"nodeType": "YulExpressionStatement",
"src": "14545:69:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "14666:6:40",
"nodeType": "YulIdentifier",
"src": "14666:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "14679:9:40",
"nodeType": "YulIdentifier",
"src": "14679:9:40"
},
{
"kind": "number",
"nativeSrc": "14690:2:40",
"nodeType": "YulLiteral",
"src": "14690:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14675:3:40",
"nodeType": "YulIdentifier",
"src": "14675:3:40"
},
"nativeSrc": "14675:18:40",
"nodeType": "YulFunctionCall",
"src": "14675:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64_fromStack",
"nativeSrc": "14624:41:40",
"nodeType": "YulIdentifier",
"src": "14624:41:40"
},
"nativeSrc": "14624:70:40",
"nodeType": "YulFunctionCall",
"src": "14624:70:40"
},
"nativeSrc": "14624:70:40",
"nodeType": "YulExpressionStatement",
"src": "14624:70:40"
}
]
},
"name": "abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed",
"nativeSrc": "14377:324:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "14463:9:40",
"nodeType": "YulTypedName",
"src": "14463:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "14475:6:40",
"nodeType": "YulTypedName",
"src": "14475:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "14483:6:40",
"nodeType": "YulTypedName",
"src": "14483:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "14494:4:40",
"nodeType": "YulTypedName",
"src": "14494:4:40",
"type": ""
}
],
"src": "14377:324:40"
},
{
"body": {
"nativeSrc": "14829:202:40",
"nodeType": "YulBlock",
"src": "14829:202:40",
"statements": [
{
"nativeSrc": "14839:26:40",
"nodeType": "YulAssignment",
"src": "14839:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "14851:9:40",
"nodeType": "YulIdentifier",
"src": "14851:9:40"
},
{
"kind": "number",
"nativeSrc": "14862:2:40",
"nodeType": "YulLiteral",
"src": "14862:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14847:3:40",
"nodeType": "YulIdentifier",
"src": "14847:3:40"
},
"nativeSrc": "14847:18:40",
"nodeType": "YulFunctionCall",
"src": "14847:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "14839:4:40",
"nodeType": "YulIdentifier",
"src": "14839:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "14917:6:40",
"nodeType": "YulIdentifier",
"src": "14917:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "14930:9:40",
"nodeType": "YulIdentifier",
"src": "14930:9:40"
},
{
"kind": "number",
"nativeSrc": "14941:1:40",
"nodeType": "YulLiteral",
"src": "14941:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14926:3:40",
"nodeType": "YulIdentifier",
"src": "14926:3:40"
},
"nativeSrc": "14926:17:40",
"nodeType": "YulFunctionCall",
"src": "14926:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64_fromStack",
"nativeSrc": "14875:41:40",
"nodeType": "YulIdentifier",
"src": "14875:41:40"
},
"nativeSrc": "14875:69:40",
"nodeType": "YulFunctionCall",
"src": "14875:69:40"
},
"nativeSrc": "14875:69:40",
"nodeType": "YulExpressionStatement",
"src": "14875:69:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "14996:6:40",
"nodeType": "YulIdentifier",
"src": "14996:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "15009:9:40",
"nodeType": "YulIdentifier",
"src": "15009:9:40"
},
{
"kind": "number",
"nativeSrc": "15020:2:40",
"nodeType": "YulLiteral",
"src": "15020:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15005:3:40",
"nodeType": "YulIdentifier",
"src": "15005:3:40"
},
"nativeSrc": "15005:18:40",
"nodeType": "YulFunctionCall",
"src": "15005:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64_fromStack",
"nativeSrc": "14954:41:40",
"nodeType": "YulIdentifier",
"src": "14954:41:40"
},
"nativeSrc": "14954:70:40",
"nodeType": "YulFunctionCall",
"src": "14954:70:40"
},
"nativeSrc": "14954:70:40",
"nodeType": "YulExpressionStatement",
"src": "14954:70:40"
}
]
},
"name": "abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed",
"nativeSrc": "14707:324:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "14793:9:40",
"nodeType": "YulTypedName",
"src": "14793:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "14805:6:40",
"nodeType": "YulTypedName",
"src": "14805:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "14813:6:40",
"nodeType": "YulTypedName",
"src": "14813:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "14824:4:40",
"nodeType": "YulTypedName",
"src": "14824:4:40",
"type": ""
}
],
"src": "14707:324:40"
},
{
"body": {
"nativeSrc": "15102:53:40",
"nodeType": "YulBlock",
"src": "15102:53:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "15119:3:40",
"nodeType": "YulIdentifier",
"src": "15119:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "15142:5:40",
"nodeType": "YulIdentifier",
"src": "15142:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "15124:17:40",
"nodeType": "YulIdentifier",
"src": "15124:17:40"
},
"nativeSrc": "15124:24:40",
"nodeType": "YulFunctionCall",
"src": "15124:24:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "15112:6:40",
"nodeType": "YulIdentifier",
"src": "15112:6:40"
},
"nativeSrc": "15112:37:40",
"nodeType": "YulFunctionCall",
"src": "15112:37:40"
},
"nativeSrc": "15112:37:40",
"nodeType": "YulExpressionStatement",
"src": "15112:37:40"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "15037:118:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "15090:5:40",
"nodeType": "YulTypedName",
"src": "15090:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "15097:3:40",
"nodeType": "YulTypedName",
"src": "15097:3:40",
"type": ""
}
],
"src": "15037:118:40"
},
{
"body": {
"nativeSrc": "15259:124:40",
"nodeType": "YulBlock",
"src": "15259:124:40",
"statements": [
{
"nativeSrc": "15269:26:40",
"nodeType": "YulAssignment",
"src": "15269:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "15281:9:40",
"nodeType": "YulIdentifier",
"src": "15281:9:40"
},
{
"kind": "number",
"nativeSrc": "15292:2:40",
"nodeType": "YulLiteral",
"src": "15292:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15277:3:40",
"nodeType": "YulIdentifier",
"src": "15277:3:40"
},
"nativeSrc": "15277:18:40",
"nodeType": "YulFunctionCall",
"src": "15277:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "15269:4:40",
"nodeType": "YulIdentifier",
"src": "15269:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "15349:6:40",
"nodeType": "YulIdentifier",
"src": "15349:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "15362:9:40",
"nodeType": "YulIdentifier",
"src": "15362:9:40"
},
{
"kind": "number",
"nativeSrc": "15373:1:40",
"nodeType": "YulLiteral",
"src": "15373:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15358:3:40",
"nodeType": "YulIdentifier",
"src": "15358:3:40"
},
"nativeSrc": "15358:17:40",
"nodeType": "YulFunctionCall",
"src": "15358:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "15305:43:40",
"nodeType": "YulIdentifier",
"src": "15305:43:40"
},
"nativeSrc": "15305:71:40",
"nodeType": "YulFunctionCall",
"src": "15305:71:40"
},
"nativeSrc": "15305:71:40",
"nodeType": "YulExpressionStatement",
"src": "15305:71:40"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "15161:222:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "15231:9:40",
"nodeType": "YulTypedName",
"src": "15231:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "15243:6:40",
"nodeType": "YulTypedName",
"src": "15243:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "15254:4:40",
"nodeType": "YulTypedName",
"src": "15254:4:40",
"type": ""
}
],
"src": "15161:222:40"
},
{
"body": {
"nativeSrc": "15489:519:40",
"nodeType": "YulBlock",
"src": "15489:519:40",
"statements": [
{
"body": {
"nativeSrc": "15535:83:40",
"nodeType": "YulBlock",
"src": "15535:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "15537:77:40",
"nodeType": "YulIdentifier",
"src": "15537:77:40"
},
"nativeSrc": "15537:79:40",
"nodeType": "YulFunctionCall",
"src": "15537:79:40"
},
"nativeSrc": "15537:79:40",
"nodeType": "YulExpressionStatement",
"src": "15537:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "15510:7:40",
"nodeType": "YulIdentifier",
"src": "15510:7:40"
},
{
"name": "headStart",
"nativeSrc": "15519:9:40",
"nodeType": "YulIdentifier",
"src": "15519:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "15506:3:40",
"nodeType": "YulIdentifier",
"src": "15506:3:40"
},
"nativeSrc": "15506:23:40",
"nodeType": "YulFunctionCall",
"src": "15506:23:40"
},
{
"kind": "number",
"nativeSrc": "15531:2:40",
"nodeType": "YulLiteral",
"src": "15531:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "15502:3:40",
"nodeType": "YulIdentifier",
"src": "15502:3:40"
},
"nativeSrc": "15502:32:40",
"nodeType": "YulFunctionCall",
"src": "15502:32:40"
},
"nativeSrc": "15499:119:40",
"nodeType": "YulIf",
"src": "15499:119:40"
},
{
"nativeSrc": "15628:117:40",
"nodeType": "YulBlock",
"src": "15628:117:40",
"statements": [
{
"nativeSrc": "15643:15:40",
"nodeType": "YulVariableDeclaration",
"src": "15643:15:40",
"value": {
"kind": "number",
"nativeSrc": "15657:1:40",
"nodeType": "YulLiteral",
"src": "15657:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "15647:6:40",
"nodeType": "YulTypedName",
"src": "15647:6:40",
"type": ""
}
]
},
{
"nativeSrc": "15672:63:40",
"nodeType": "YulAssignment",
"src": "15672:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "15707:9:40",
"nodeType": "YulIdentifier",
"src": "15707:9:40"
},
{
"name": "offset",
"nativeSrc": "15718:6:40",
"nodeType": "YulIdentifier",
"src": "15718:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15703:3:40",
"nodeType": "YulIdentifier",
"src": "15703:3:40"
},
"nativeSrc": "15703:22:40",
"nodeType": "YulFunctionCall",
"src": "15703:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "15727:7:40",
"nodeType": "YulIdentifier",
"src": "15727:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "15682:20:40",
"nodeType": "YulIdentifier",
"src": "15682:20:40"
},
"nativeSrc": "15682:53:40",
"nodeType": "YulFunctionCall",
"src": "15682:53:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "15672:6:40",
"nodeType": "YulIdentifier",
"src": "15672:6:40"
}
]
}
]
},
{
"nativeSrc": "15755:118:40",
"nodeType": "YulBlock",
"src": "15755:118:40",
"statements": [
{
"nativeSrc": "15770:16:40",
"nodeType": "YulVariableDeclaration",
"src": "15770:16:40",
"value": {
"kind": "number",
"nativeSrc": "15784:2:40",
"nodeType": "YulLiteral",
"src": "15784:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "15774:6:40",
"nodeType": "YulTypedName",
"src": "15774:6:40",
"type": ""
}
]
},
{
"nativeSrc": "15800:63:40",
"nodeType": "YulAssignment",
"src": "15800:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "15835:9:40",
"nodeType": "YulIdentifier",
"src": "15835:9:40"
},
{
"name": "offset",
"nativeSrc": "15846:6:40",
"nodeType": "YulIdentifier",
"src": "15846:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15831:3:40",
"nodeType": "YulIdentifier",
"src": "15831:3:40"
},
"nativeSrc": "15831:22:40",
"nodeType": "YulFunctionCall",
"src": "15831:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "15855:7:40",
"nodeType": "YulIdentifier",
"src": "15855:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "15810:20:40",
"nodeType": "YulIdentifier",
"src": "15810:20:40"
},
"nativeSrc": "15810:53:40",
"nodeType": "YulFunctionCall",
"src": "15810:53:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "15800:6:40",
"nodeType": "YulIdentifier",
"src": "15800:6:40"
}
]
}
]
},
{
"nativeSrc": "15883:118:40",
"nodeType": "YulBlock",
"src": "15883:118:40",
"statements": [
{
"nativeSrc": "15898:16:40",
"nodeType": "YulVariableDeclaration",
"src": "15898:16:40",
"value": {
"kind": "number",
"nativeSrc": "15912:2:40",
"nodeType": "YulLiteral",
"src": "15912:2:40",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "15902:6:40",
"nodeType": "YulTypedName",
"src": "15902:6:40",
"type": ""
}
]
},
{
"nativeSrc": "15928:63:40",
"nodeType": "YulAssignment",
"src": "15928:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "15963:9:40",
"nodeType": "YulIdentifier",
"src": "15963:9:40"
},
{
"name": "offset",
"nativeSrc": "15974:6:40",
"nodeType": "YulIdentifier",
"src": "15974:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15959:3:40",
"nodeType": "YulIdentifier",
"src": "15959:3:40"
},
"nativeSrc": "15959:22:40",
"nodeType": "YulFunctionCall",
"src": "15959:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "15983:7:40",
"nodeType": "YulIdentifier",
"src": "15983:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "15938:20:40",
"nodeType": "YulIdentifier",
"src": "15938:20:40"
},
"nativeSrc": "15938:53:40",
"nodeType": "YulFunctionCall",
"src": "15938:53:40"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "15928:6:40",
"nodeType": "YulIdentifier",
"src": "15928:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nativeSrc": "15389:619:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "15443:9:40",
"nodeType": "YulTypedName",
"src": "15443:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "15454:7:40",
"nodeType": "YulTypedName",
"src": "15454:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "15466:6:40",
"nodeType": "YulTypedName",
"src": "15466:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "15474:6:40",
"nodeType": "YulTypedName",
"src": "15474:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "15482:6:40",
"nodeType": "YulTypedName",
"src": "15482:6:40",
"type": ""
}
],
"src": "15389:619:40"
},
{
"body": {
"nativeSrc": "16057:43:40",
"nodeType": "YulBlock",
"src": "16057:43:40",
"statements": [
{
"nativeSrc": "16067:27:40",
"nodeType": "YulAssignment",
"src": "16067:27:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "16082:5:40",
"nodeType": "YulIdentifier",
"src": "16082:5:40"
},
{
"kind": "number",
"nativeSrc": "16089:4:40",
"nodeType": "YulLiteral",
"src": "16089:4:40",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "16078:3:40",
"nodeType": "YulIdentifier",
"src": "16078:3:40"
},
"nativeSrc": "16078:16:40",
"nodeType": "YulFunctionCall",
"src": "16078:16:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "16067:7:40",
"nodeType": "YulIdentifier",
"src": "16067:7:40"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nativeSrc": "16014:86:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "16039:5:40",
"nodeType": "YulTypedName",
"src": "16039:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "16049:7:40",
"nodeType": "YulTypedName",
"src": "16049:7:40",
"type": ""
}
],
"src": "16014:86:40"
},
{
"body": {
"nativeSrc": "16167:51:40",
"nodeType": "YulBlock",
"src": "16167:51:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "16184:3:40",
"nodeType": "YulIdentifier",
"src": "16184:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "16205:5:40",
"nodeType": "YulIdentifier",
"src": "16205:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "16189:15:40",
"nodeType": "YulIdentifier",
"src": "16189:15:40"
},
"nativeSrc": "16189:22:40",
"nodeType": "YulFunctionCall",
"src": "16189:22:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "16177:6:40",
"nodeType": "YulIdentifier",
"src": "16177:6:40"
},
"nativeSrc": "16177:35:40",
"nodeType": "YulFunctionCall",
"src": "16177:35:40"
},
"nativeSrc": "16177:35:40",
"nodeType": "YulExpressionStatement",
"src": "16177:35:40"
}
]
},
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "16106:112:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "16155:5:40",
"nodeType": "YulTypedName",
"src": "16155:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "16162:3:40",
"nodeType": "YulTypedName",
"src": "16162:3:40",
"type": ""
}
],
"src": "16106:112:40"
},
{
"body": {
"nativeSrc": "16318:120:40",
"nodeType": "YulBlock",
"src": "16318:120:40",
"statements": [
{
"nativeSrc": "16328:26:40",
"nodeType": "YulAssignment",
"src": "16328:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "16340:9:40",
"nodeType": "YulIdentifier",
"src": "16340:9:40"
},
{
"kind": "number",
"nativeSrc": "16351:2:40",
"nodeType": "YulLiteral",
"src": "16351:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "16336:3:40",
"nodeType": "YulIdentifier",
"src": "16336:3:40"
},
"nativeSrc": "16336:18:40",
"nodeType": "YulFunctionCall",
"src": "16336:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "16328:4:40",
"nodeType": "YulIdentifier",
"src": "16328:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "16404:6:40",
"nodeType": "YulIdentifier",
"src": "16404:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "16417:9:40",
"nodeType": "YulIdentifier",
"src": "16417:9:40"
},
{
"kind": "number",
"nativeSrc": "16428:1:40",
"nodeType": "YulLiteral",
"src": "16428:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "16413:3:40",
"nodeType": "YulIdentifier",
"src": "16413:3:40"
},
"nativeSrc": "16413:17:40",
"nodeType": "YulFunctionCall",
"src": "16413:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "16364:39:40",
"nodeType": "YulIdentifier",
"src": "16364:39:40"
},
"nativeSrc": "16364:67:40",
"nodeType": "YulFunctionCall",
"src": "16364:67:40"
},
"nativeSrc": "16364:67:40",
"nodeType": "YulExpressionStatement",
"src": "16364:67:40"
}
]
},
"name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
"nativeSrc": "16224:214:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "16290:9:40",
"nodeType": "YulTypedName",
"src": "16290:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "16302:6:40",
"nodeType": "YulTypedName",
"src": "16302:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "16313:4:40",
"nodeType": "YulTypedName",
"src": "16313:4:40",
"type": ""
}
],
"src": "16224:214:40"
},
{
"body": {
"nativeSrc": "16488:49:40",
"nodeType": "YulBlock",
"src": "16488:49:40",
"statements": [
{
"nativeSrc": "16498:33:40",
"nodeType": "YulAssignment",
"src": "16498:33:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "16513:5:40",
"nodeType": "YulIdentifier",
"src": "16513:5:40"
},
{
"kind": "number",
"nativeSrc": "16520:10:40",
"nodeType": "YulLiteral",
"src": "16520:10:40",
"type": "",
"value": "0xffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "16509:3:40",
"nodeType": "YulIdentifier",
"src": "16509:3:40"
},
"nativeSrc": "16509:22:40",
"nodeType": "YulFunctionCall",
"src": "16509:22:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "16498:7:40",
"nodeType": "YulIdentifier",
"src": "16498:7:40"
}
]
}
]
},
"name": "cleanup_t_uint32",
"nativeSrc": "16444:93:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "16470:5:40",
"nodeType": "YulTypedName",
"src": "16470:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "16480:7:40",
"nodeType": "YulTypedName",
"src": "16480:7:40",
"type": ""
}
],
"src": "16444:93:40"
},
{
"body": {
"nativeSrc": "16585:78:40",
"nodeType": "YulBlock",
"src": "16585:78:40",
"statements": [
{
"body": {
"nativeSrc": "16641:16:40",
"nodeType": "YulBlock",
"src": "16641:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "16650:1:40",
"nodeType": "YulLiteral",
"src": "16650:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "16653:1:40",
"nodeType": "YulLiteral",
"src": "16653:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "16643:6:40",
"nodeType": "YulIdentifier",
"src": "16643:6:40"
},
"nativeSrc": "16643:12:40",
"nodeType": "YulFunctionCall",
"src": "16643:12:40"
},
"nativeSrc": "16643:12:40",
"nodeType": "YulExpressionStatement",
"src": "16643:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "16608:5:40",
"nodeType": "YulIdentifier",
"src": "16608:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "16632:5:40",
"nodeType": "YulIdentifier",
"src": "16632:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint32",
"nativeSrc": "16615:16:40",
"nodeType": "YulIdentifier",
"src": "16615:16:40"
},
"nativeSrc": "16615:23:40",
"nodeType": "YulFunctionCall",
"src": "16615:23:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "16605:2:40",
"nodeType": "YulIdentifier",
"src": "16605:2:40"
},
"nativeSrc": "16605:34:40",
"nodeType": "YulFunctionCall",
"src": "16605:34:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "16598:6:40",
"nodeType": "YulIdentifier",
"src": "16598:6:40"
},
"nativeSrc": "16598:42:40",
"nodeType": "YulFunctionCall",
"src": "16598:42:40"
},
"nativeSrc": "16595:62:40",
"nodeType": "YulIf",
"src": "16595:62:40"
}
]
},
"name": "validator_revert_t_uint32",
"nativeSrc": "16543:120:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "16578:5:40",
"nodeType": "YulTypedName",
"src": "16578:5:40",
"type": ""
}
],
"src": "16543:120:40"
},
{
"body": {
"nativeSrc": "16720:86:40",
"nodeType": "YulBlock",
"src": "16720:86:40",
"statements": [
{
"nativeSrc": "16730:29:40",
"nodeType": "YulAssignment",
"src": "16730:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "16752:6:40",
"nodeType": "YulIdentifier",
"src": "16752:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "16739:12:40",
"nodeType": "YulIdentifier",
"src": "16739:12:40"
},
"nativeSrc": "16739:20:40",
"nodeType": "YulFunctionCall",
"src": "16739:20:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "16730:5:40",
"nodeType": "YulIdentifier",
"src": "16730:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "16794:5:40",
"nodeType": "YulIdentifier",
"src": "16794:5:40"
}
],
"functionName": {
"name": "validator_revert_t_uint32",
"nativeSrc": "16768:25:40",
"nodeType": "YulIdentifier",
"src": "16768:25:40"
},
"nativeSrc": "16768:32:40",
"nodeType": "YulFunctionCall",
"src": "16768:32:40"
},
"nativeSrc": "16768:32:40",
"nodeType": "YulExpressionStatement",
"src": "16768:32:40"
}
]
},
"name": "abi_decode_t_uint32",
"nativeSrc": "16669:137:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "16698:6:40",
"nodeType": "YulTypedName",
"src": "16698:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "16706:3:40",
"nodeType": "YulTypedName",
"src": "16706:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "16714:5:40",
"nodeType": "YulTypedName",
"src": "16714:5:40",
"type": ""
}
],
"src": "16669:137:40"
},
{
"body": {
"nativeSrc": "16894:390:40",
"nodeType": "YulBlock",
"src": "16894:390:40",
"statements": [
{
"body": {
"nativeSrc": "16940:83:40",
"nodeType": "YulBlock",
"src": "16940:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "16942:77:40",
"nodeType": "YulIdentifier",
"src": "16942:77:40"
},
"nativeSrc": "16942:79:40",
"nodeType": "YulFunctionCall",
"src": "16942:79:40"
},
"nativeSrc": "16942:79:40",
"nodeType": "YulExpressionStatement",
"src": "16942:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "16915:7:40",
"nodeType": "YulIdentifier",
"src": "16915:7:40"
},
{
"name": "headStart",
"nativeSrc": "16924:9:40",
"nodeType": "YulIdentifier",
"src": "16924:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "16911:3:40",
"nodeType": "YulIdentifier",
"src": "16911:3:40"
},
"nativeSrc": "16911:23:40",
"nodeType": "YulFunctionCall",
"src": "16911:23:40"
},
{
"kind": "number",
"nativeSrc": "16936:2:40",
"nodeType": "YulLiteral",
"src": "16936:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "16907:3:40",
"nodeType": "YulIdentifier",
"src": "16907:3:40"
},
"nativeSrc": "16907:32:40",
"nodeType": "YulFunctionCall",
"src": "16907:32:40"
},
"nativeSrc": "16904:119:40",
"nodeType": "YulIf",
"src": "16904:119:40"
},
{
"nativeSrc": "17033:116:40",
"nodeType": "YulBlock",
"src": "17033:116:40",
"statements": [
{
"nativeSrc": "17048:15:40",
"nodeType": "YulVariableDeclaration",
"src": "17048:15:40",
"value": {
"kind": "number",
"nativeSrc": "17062:1:40",
"nodeType": "YulLiteral",
"src": "17062:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "17052:6:40",
"nodeType": "YulTypedName",
"src": "17052:6:40",
"type": ""
}
]
},
{
"nativeSrc": "17077:62:40",
"nodeType": "YulAssignment",
"src": "17077:62:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "17111:9:40",
"nodeType": "YulIdentifier",
"src": "17111:9:40"
},
{
"name": "offset",
"nativeSrc": "17122:6:40",
"nodeType": "YulIdentifier",
"src": "17122:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "17107:3:40",
"nodeType": "YulIdentifier",
"src": "17107:3:40"
},
"nativeSrc": "17107:22:40",
"nodeType": "YulFunctionCall",
"src": "17107:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "17131:7:40",
"nodeType": "YulIdentifier",
"src": "17131:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint32",
"nativeSrc": "17087:19:40",
"nodeType": "YulIdentifier",
"src": "17087:19:40"
},
"nativeSrc": "17087:52:40",
"nodeType": "YulFunctionCall",
"src": "17087:52:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "17077:6:40",
"nodeType": "YulIdentifier",
"src": "17077:6:40"
}
]
}
]
},
{
"nativeSrc": "17159:118:40",
"nodeType": "YulBlock",
"src": "17159:118:40",
"statements": [
{
"nativeSrc": "17174:16:40",
"nodeType": "YulVariableDeclaration",
"src": "17174:16:40",
"value": {
"kind": "number",
"nativeSrc": "17188:2:40",
"nodeType": "YulLiteral",
"src": "17188:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "17178:6:40",
"nodeType": "YulTypedName",
"src": "17178:6:40",
"type": ""
}
]
},
{
"nativeSrc": "17204:63:40",
"nodeType": "YulAssignment",
"src": "17204:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "17239:9:40",
"nodeType": "YulIdentifier",
"src": "17239:9:40"
},
{
"name": "offset",
"nativeSrc": "17250:6:40",
"nodeType": "YulIdentifier",
"src": "17250:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "17235:3:40",
"nodeType": "YulIdentifier",
"src": "17235:3:40"
},
"nativeSrc": "17235:22:40",
"nodeType": "YulFunctionCall",
"src": "17235:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "17259:7:40",
"nodeType": "YulIdentifier",
"src": "17259:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nativeSrc": "17214:20:40",
"nodeType": "YulIdentifier",
"src": "17214:20:40"
},
"nativeSrc": "17214:53:40",
"nodeType": "YulFunctionCall",
"src": "17214:53:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "17204:6:40",
"nodeType": "YulIdentifier",
"src": "17204:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint32t_bytes32",
"nativeSrc": "16812:472:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "16856:9:40",
"nodeType": "YulTypedName",
"src": "16856:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "16867:7:40",
"nodeType": "YulTypedName",
"src": "16867:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "16879:6:40",
"nodeType": "YulTypedName",
"src": "16879:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "16887:6:40",
"nodeType": "YulTypedName",
"src": "16887:6:40",
"type": ""
}
],
"src": "16812:472:40"
},
{
"body": {
"nativeSrc": "17330:76:40",
"nodeType": "YulBlock",
"src": "17330:76:40",
"statements": [
{
"body": {
"nativeSrc": "17384:16:40",
"nodeType": "YulBlock",
"src": "17384:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "17393:1:40",
"nodeType": "YulLiteral",
"src": "17393:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "17396:1:40",
"nodeType": "YulLiteral",
"src": "17396:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "17386:6:40",
"nodeType": "YulIdentifier",
"src": "17386:6:40"
},
"nativeSrc": "17386:12:40",
"nodeType": "YulFunctionCall",
"src": "17386:12:40"
},
"nativeSrc": "17386:12:40",
"nodeType": "YulExpressionStatement",
"src": "17386:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "17353:5:40",
"nodeType": "YulIdentifier",
"src": "17353:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "17375:5:40",
"nodeType": "YulIdentifier",
"src": "17375:5:40"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "17360:14:40",
"nodeType": "YulIdentifier",
"src": "17360:14:40"
},
"nativeSrc": "17360:21:40",
"nodeType": "YulFunctionCall",
"src": "17360:21:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "17350:2:40",
"nodeType": "YulIdentifier",
"src": "17350:2:40"
},
"nativeSrc": "17350:32:40",
"nodeType": "YulFunctionCall",
"src": "17350:32:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "17343:6:40",
"nodeType": "YulIdentifier",
"src": "17343:6:40"
},
"nativeSrc": "17343:40:40",
"nodeType": "YulFunctionCall",
"src": "17343:40:40"
},
"nativeSrc": "17340:60:40",
"nodeType": "YulIf",
"src": "17340:60:40"
}
]
},
"name": "validator_revert_t_bool",
"nativeSrc": "17290:116:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "17323:5:40",
"nodeType": "YulTypedName",
"src": "17323:5:40",
"type": ""
}
],
"src": "17290:116:40"
},
{
"body": {
"nativeSrc": "17461:84:40",
"nodeType": "YulBlock",
"src": "17461:84:40",
"statements": [
{
"nativeSrc": "17471:29:40",
"nodeType": "YulAssignment",
"src": "17471:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "17493:6:40",
"nodeType": "YulIdentifier",
"src": "17493:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "17480:12:40",
"nodeType": "YulIdentifier",
"src": "17480:12:40"
},
"nativeSrc": "17480:20:40",
"nodeType": "YulFunctionCall",
"src": "17480:20:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "17471:5:40",
"nodeType": "YulIdentifier",
"src": "17471:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "17533:5:40",
"nodeType": "YulIdentifier",
"src": "17533:5:40"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nativeSrc": "17509:23:40",
"nodeType": "YulIdentifier",
"src": "17509:23:40"
},
"nativeSrc": "17509:30:40",
"nodeType": "YulFunctionCall",
"src": "17509:30:40"
},
"nativeSrc": "17509:30:40",
"nodeType": "YulExpressionStatement",
"src": "17509:30:40"
}
]
},
"name": "abi_decode_t_bool",
"nativeSrc": "17412:133:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "17439:6:40",
"nodeType": "YulTypedName",
"src": "17439:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "17447:3:40",
"nodeType": "YulTypedName",
"src": "17447:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "17455:5:40",
"nodeType": "YulTypedName",
"src": "17455:5:40",
"type": ""
}
],
"src": "17412:133:40"
},
{
"body": {
"nativeSrc": "17660:577:40",
"nodeType": "YulBlock",
"src": "17660:577:40",
"statements": [
{
"body": {
"nativeSrc": "17706:83:40",
"nodeType": "YulBlock",
"src": "17706:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "17708:77:40",
"nodeType": "YulIdentifier",
"src": "17708:77:40"
},
"nativeSrc": "17708:79:40",
"nodeType": "YulFunctionCall",
"src": "17708:79:40"
},
"nativeSrc": "17708:79:40",
"nodeType": "YulExpressionStatement",
"src": "17708:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "17681:7:40",
"nodeType": "YulIdentifier",
"src": "17681:7:40"
},
{
"name": "headStart",
"nativeSrc": "17690:9:40",
"nodeType": "YulIdentifier",
"src": "17690:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "17677:3:40",
"nodeType": "YulIdentifier",
"src": "17677:3:40"
},
"nativeSrc": "17677:23:40",
"nodeType": "YulFunctionCall",
"src": "17677:23:40"
},
{
"kind": "number",
"nativeSrc": "17702:2:40",
"nodeType": "YulLiteral",
"src": "17702:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "17673:3:40",
"nodeType": "YulIdentifier",
"src": "17673:3:40"
},
"nativeSrc": "17673:32:40",
"nodeType": "YulFunctionCall",
"src": "17673:32:40"
},
"nativeSrc": "17670:119:40",
"nodeType": "YulIf",
"src": "17670:119:40"
},
{
"nativeSrc": "17799:306:40",
"nodeType": "YulBlock",
"src": "17799:306:40",
"statements": [
{
"nativeSrc": "17814:45:40",
"nodeType": "YulVariableDeclaration",
"src": "17814:45:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "17845:9:40",
"nodeType": "YulIdentifier",
"src": "17845:9:40"
},
{
"kind": "number",
"nativeSrc": "17856:1:40",
"nodeType": "YulLiteral",
"src": "17856:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "17841:3:40",
"nodeType": "YulIdentifier",
"src": "17841:3:40"
},
"nativeSrc": "17841:17:40",
"nodeType": "YulFunctionCall",
"src": "17841:17:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "17828:12:40",
"nodeType": "YulIdentifier",
"src": "17828:12:40"
},
"nativeSrc": "17828:31:40",
"nodeType": "YulFunctionCall",
"src": "17828:31:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "17818:6:40",
"nodeType": "YulTypedName",
"src": "17818:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "17906:83:40",
"nodeType": "YulBlock",
"src": "17906:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "17908:77:40",
"nodeType": "YulIdentifier",
"src": "17908:77:40"
},
"nativeSrc": "17908:79:40",
"nodeType": "YulFunctionCall",
"src": "17908:79:40"
},
"nativeSrc": "17908:79:40",
"nodeType": "YulExpressionStatement",
"src": "17908:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "17878:6:40",
"nodeType": "YulIdentifier",
"src": "17878:6:40"
},
{
"kind": "number",
"nativeSrc": "17886:18:40",
"nodeType": "YulLiteral",
"src": "17886:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "17875:2:40",
"nodeType": "YulIdentifier",
"src": "17875:2:40"
},
"nativeSrc": "17875:30:40",
"nodeType": "YulFunctionCall",
"src": "17875:30:40"
},
"nativeSrc": "17872:117:40",
"nodeType": "YulIf",
"src": "17872:117:40"
},
{
"nativeSrc": "18003:92:40",
"nodeType": "YulAssignment",
"src": "18003:92:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "18067:9:40",
"nodeType": "YulIdentifier",
"src": "18067:9:40"
},
{
"name": "offset",
"nativeSrc": "18078:6:40",
"nodeType": "YulIdentifier",
"src": "18078:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18063:3:40",
"nodeType": "YulIdentifier",
"src": "18063:3:40"
},
"nativeSrc": "18063:22:40",
"nodeType": "YulFunctionCall",
"src": "18063:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "18087:7:40",
"nodeType": "YulIdentifier",
"src": "18087:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_SendParam_$3386_calldata_ptr",
"nativeSrc": "18013:49:40",
"nodeType": "YulIdentifier",
"src": "18013:49:40"
},
"nativeSrc": "18013:82:40",
"nodeType": "YulFunctionCall",
"src": "18013:82:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "18003:6:40",
"nodeType": "YulIdentifier",
"src": "18003:6:40"
}
]
}
]
},
{
"nativeSrc": "18115:115:40",
"nodeType": "YulBlock",
"src": "18115:115:40",
"statements": [
{
"nativeSrc": "18130:16:40",
"nodeType": "YulVariableDeclaration",
"src": "18130:16:40",
"value": {
"kind": "number",
"nativeSrc": "18144:2:40",
"nodeType": "YulLiteral",
"src": "18144:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "18134:6:40",
"nodeType": "YulTypedName",
"src": "18134:6:40",
"type": ""
}
]
},
{
"nativeSrc": "18160:60:40",
"nodeType": "YulAssignment",
"src": "18160:60:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "18192:9:40",
"nodeType": "YulIdentifier",
"src": "18192:9:40"
},
{
"name": "offset",
"nativeSrc": "18203:6:40",
"nodeType": "YulIdentifier",
"src": "18203:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18188:3:40",
"nodeType": "YulIdentifier",
"src": "18188:3:40"
},
"nativeSrc": "18188:22:40",
"nodeType": "YulFunctionCall",
"src": "18188:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "18212:7:40",
"nodeType": "YulIdentifier",
"src": "18212:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nativeSrc": "18170:17:40",
"nodeType": "YulIdentifier",
"src": "18170:17:40"
},
"nativeSrc": "18170:50:40",
"nodeType": "YulFunctionCall",
"src": "18170:50:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "18160:6:40",
"nodeType": "YulIdentifier",
"src": "18160:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptrt_bool",
"nativeSrc": "17551:686:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "17622:9:40",
"nodeType": "YulTypedName",
"src": "17622:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "17633:7:40",
"nodeType": "YulTypedName",
"src": "17633:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "17645:6:40",
"nodeType": "YulTypedName",
"src": "17645:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "17653:6:40",
"nodeType": "YulTypedName",
"src": "17653:6:40",
"type": ""
}
],
"src": "17551:686:40"
},
{
"body": {
"nativeSrc": "18415:402:40",
"nodeType": "YulBlock",
"src": "18415:402:40",
"statements": [
{
"nativeSrc": "18425:26:40",
"nodeType": "YulVariableDeclaration",
"src": "18425:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "18441:3:40",
"nodeType": "YulIdentifier",
"src": "18441:3:40"
},
{
"kind": "number",
"nativeSrc": "18446:4:40",
"nodeType": "YulLiteral",
"src": "18446:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18437:3:40",
"nodeType": "YulIdentifier",
"src": "18437:3:40"
},
"nativeSrc": "18437:14:40",
"nodeType": "YulFunctionCall",
"src": "18437:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "18429:4:40",
"nodeType": "YulTypedName",
"src": "18429:4:40",
"type": ""
}
]
},
{
"nativeSrc": "18461:169:40",
"nodeType": "YulBlock",
"src": "18461:169:40",
"statements": [
{
"nativeSrc": "18501:43:40",
"nodeType": "YulVariableDeclaration",
"src": "18501:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "18531:5:40",
"nodeType": "YulIdentifier",
"src": "18531:5:40"
},
{
"kind": "number",
"nativeSrc": "18538:4:40",
"nodeType": "YulLiteral",
"src": "18538:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18527:3:40",
"nodeType": "YulIdentifier",
"src": "18527:3:40"
},
"nativeSrc": "18527:16:40",
"nodeType": "YulFunctionCall",
"src": "18527:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "18521:5:40",
"nodeType": "YulIdentifier",
"src": "18521:5:40"
},
"nativeSrc": "18521:23:40",
"nodeType": "YulFunctionCall",
"src": "18521:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "18505:12:40",
"nodeType": "YulTypedName",
"src": "18505:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "18591:12:40",
"nodeType": "YulIdentifier",
"src": "18591:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "18609:3:40",
"nodeType": "YulIdentifier",
"src": "18609:3:40"
},
{
"kind": "number",
"nativeSrc": "18614:4:40",
"nodeType": "YulLiteral",
"src": "18614:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18605:3:40",
"nodeType": "YulIdentifier",
"src": "18605:3:40"
},
"nativeSrc": "18605:14:40",
"nodeType": "YulFunctionCall",
"src": "18605:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "18557:33:40",
"nodeType": "YulIdentifier",
"src": "18557:33:40"
},
"nativeSrc": "18557:63:40",
"nodeType": "YulFunctionCall",
"src": "18557:63:40"
},
"nativeSrc": "18557:63:40",
"nodeType": "YulExpressionStatement",
"src": "18557:63:40"
}
]
},
{
"nativeSrc": "18640:170:40",
"nodeType": "YulBlock",
"src": "18640:170:40",
"statements": [
{
"nativeSrc": "18681:43:40",
"nodeType": "YulVariableDeclaration",
"src": "18681:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "18711:5:40",
"nodeType": "YulIdentifier",
"src": "18711:5:40"
},
{
"kind": "number",
"nativeSrc": "18718:4:40",
"nodeType": "YulLiteral",
"src": "18718:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18707:3:40",
"nodeType": "YulIdentifier",
"src": "18707:3:40"
},
"nativeSrc": "18707:16:40",
"nodeType": "YulFunctionCall",
"src": "18707:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "18701:5:40",
"nodeType": "YulIdentifier",
"src": "18701:5:40"
},
"nativeSrc": "18701:23:40",
"nodeType": "YulFunctionCall",
"src": "18701:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "18685:12:40",
"nodeType": "YulTypedName",
"src": "18685:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "18771:12:40",
"nodeType": "YulIdentifier",
"src": "18771:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "18789:3:40",
"nodeType": "YulIdentifier",
"src": "18789:3:40"
},
{
"kind": "number",
"nativeSrc": "18794:4:40",
"nodeType": "YulLiteral",
"src": "18794:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18785:3:40",
"nodeType": "YulIdentifier",
"src": "18785:3:40"
},
"nativeSrc": "18785:14:40",
"nodeType": "YulFunctionCall",
"src": "18785:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "18737:33:40",
"nodeType": "YulIdentifier",
"src": "18737:33:40"
},
"nativeSrc": "18737:63:40",
"nodeType": "YulFunctionCall",
"src": "18737:63:40"
},
"nativeSrc": "18737:63:40",
"nodeType": "YulExpressionStatement",
"src": "18737:63:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr_fromStack",
"nativeSrc": "18293:524:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "18402:5:40",
"nodeType": "YulTypedName",
"src": "18402:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "18409:3:40",
"nodeType": "YulTypedName",
"src": "18409:3:40",
"type": ""
}
],
"src": "18293:524:40"
},
{
"body": {
"nativeSrc": "18977:180:40",
"nodeType": "YulBlock",
"src": "18977:180:40",
"statements": [
{
"nativeSrc": "18987:26:40",
"nodeType": "YulAssignment",
"src": "18987:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "18999:9:40",
"nodeType": "YulIdentifier",
"src": "18999:9:40"
},
{
"kind": "number",
"nativeSrc": "19010:2:40",
"nodeType": "YulLiteral",
"src": "19010:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18995:3:40",
"nodeType": "YulIdentifier",
"src": "18995:3:40"
},
"nativeSrc": "18995:18:40",
"nodeType": "YulFunctionCall",
"src": "18995:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "18987:4:40",
"nodeType": "YulIdentifier",
"src": "18987:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "19123:6:40",
"nodeType": "YulIdentifier",
"src": "19123:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "19136:9:40",
"nodeType": "YulIdentifier",
"src": "19136:9:40"
},
{
"kind": "number",
"nativeSrc": "19147:1:40",
"nodeType": "YulLiteral",
"src": "19147:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19132:3:40",
"nodeType": "YulIdentifier",
"src": "19132:3:40"
},
"nativeSrc": "19132:17:40",
"nodeType": "YulFunctionCall",
"src": "19132:17:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr_fromStack",
"nativeSrc": "19023:99:40",
"nodeType": "YulIdentifier",
"src": "19023:99:40"
},
"nativeSrc": "19023:127:40",
"nodeType": "YulFunctionCall",
"src": "19023:127:40"
},
"nativeSrc": "19023:127:40",
"nodeType": "YulExpressionStatement",
"src": "19023:127:40"
}
]
},
"name": "abi_encode_tuple_t_struct$_MessagingFee_$33_memory_ptr__to_t_struct$_MessagingFee_$33_memory_ptr__fromStack_reversed",
"nativeSrc": "18823:334:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "18949:9:40",
"nodeType": "YulTypedName",
"src": "18949:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "18961:6:40",
"nodeType": "YulTypedName",
"src": "18961:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "18972:4:40",
"nodeType": "YulTypedName",
"src": "18972:4:40",
"type": ""
}
],
"src": "18823:334:40"
},
{
"body": {
"nativeSrc": "19205:78:40",
"nodeType": "YulBlock",
"src": "19205:78:40",
"statements": [
{
"body": {
"nativeSrc": "19261:16:40",
"nodeType": "YulBlock",
"src": "19261:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "19270:1:40",
"nodeType": "YulLiteral",
"src": "19270:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "19273:1:40",
"nodeType": "YulLiteral",
"src": "19273:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "19263:6:40",
"nodeType": "YulIdentifier",
"src": "19263:6:40"
},
"nativeSrc": "19263:12:40",
"nodeType": "YulFunctionCall",
"src": "19263:12:40"
},
"nativeSrc": "19263:12:40",
"nodeType": "YulExpressionStatement",
"src": "19263:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "19228:5:40",
"nodeType": "YulIdentifier",
"src": "19228:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "19252:5:40",
"nodeType": "YulIdentifier",
"src": "19252:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint16",
"nativeSrc": "19235:16:40",
"nodeType": "YulIdentifier",
"src": "19235:16:40"
},
"nativeSrc": "19235:23:40",
"nodeType": "YulFunctionCall",
"src": "19235:23:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "19225:2:40",
"nodeType": "YulIdentifier",
"src": "19225:2:40"
},
"nativeSrc": "19225:34:40",
"nodeType": "YulFunctionCall",
"src": "19225:34:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "19218:6:40",
"nodeType": "YulIdentifier",
"src": "19218:6:40"
},
"nativeSrc": "19218:42:40",
"nodeType": "YulFunctionCall",
"src": "19218:42:40"
},
"nativeSrc": "19215:62:40",
"nodeType": "YulIf",
"src": "19215:62:40"
}
]
},
"name": "validator_revert_t_uint16",
"nativeSrc": "19163:120:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "19198:5:40",
"nodeType": "YulTypedName",
"src": "19198:5:40",
"type": ""
}
],
"src": "19163:120:40"
},
{
"body": {
"nativeSrc": "19340:86:40",
"nodeType": "YulBlock",
"src": "19340:86:40",
"statements": [
{
"nativeSrc": "19350:29:40",
"nodeType": "YulAssignment",
"src": "19350:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "19372:6:40",
"nodeType": "YulIdentifier",
"src": "19372:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "19359:12:40",
"nodeType": "YulIdentifier",
"src": "19359:12:40"
},
"nativeSrc": "19359:20:40",
"nodeType": "YulFunctionCall",
"src": "19359:20:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "19350:5:40",
"nodeType": "YulIdentifier",
"src": "19350:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "19414:5:40",
"nodeType": "YulIdentifier",
"src": "19414:5:40"
}
],
"functionName": {
"name": "validator_revert_t_uint16",
"nativeSrc": "19388:25:40",
"nodeType": "YulIdentifier",
"src": "19388:25:40"
},
"nativeSrc": "19388:32:40",
"nodeType": "YulFunctionCall",
"src": "19388:32:40"
},
"nativeSrc": "19388:32:40",
"nodeType": "YulExpressionStatement",
"src": "19388:32:40"
}
]
},
"name": "abi_decode_t_uint16",
"nativeSrc": "19289:137:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "19318:6:40",
"nodeType": "YulTypedName",
"src": "19318:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "19326:3:40",
"nodeType": "YulTypedName",
"src": "19326:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "19334:5:40",
"nodeType": "YulTypedName",
"src": "19334:5:40",
"type": ""
}
],
"src": "19289:137:40"
},
{
"body": {
"nativeSrc": "19513:389:40",
"nodeType": "YulBlock",
"src": "19513:389:40",
"statements": [
{
"body": {
"nativeSrc": "19559:83:40",
"nodeType": "YulBlock",
"src": "19559:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "19561:77:40",
"nodeType": "YulIdentifier",
"src": "19561:77:40"
},
"nativeSrc": "19561:79:40",
"nodeType": "YulFunctionCall",
"src": "19561:79:40"
},
"nativeSrc": "19561:79:40",
"nodeType": "YulExpressionStatement",
"src": "19561:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "19534:7:40",
"nodeType": "YulIdentifier",
"src": "19534:7:40"
},
{
"name": "headStart",
"nativeSrc": "19543:9:40",
"nodeType": "YulIdentifier",
"src": "19543:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "19530:3:40",
"nodeType": "YulIdentifier",
"src": "19530:3:40"
},
"nativeSrc": "19530:23:40",
"nodeType": "YulFunctionCall",
"src": "19530:23:40"
},
{
"kind": "number",
"nativeSrc": "19555:2:40",
"nodeType": "YulLiteral",
"src": "19555:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "19526:3:40",
"nodeType": "YulIdentifier",
"src": "19526:3:40"
},
"nativeSrc": "19526:32:40",
"nodeType": "YulFunctionCall",
"src": "19526:32:40"
},
"nativeSrc": "19523:119:40",
"nodeType": "YulIf",
"src": "19523:119:40"
},
{
"nativeSrc": "19652:116:40",
"nodeType": "YulBlock",
"src": "19652:116:40",
"statements": [
{
"nativeSrc": "19667:15:40",
"nodeType": "YulVariableDeclaration",
"src": "19667:15:40",
"value": {
"kind": "number",
"nativeSrc": "19681:1:40",
"nodeType": "YulLiteral",
"src": "19681:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "19671:6:40",
"nodeType": "YulTypedName",
"src": "19671:6:40",
"type": ""
}
]
},
{
"nativeSrc": "19696:62:40",
"nodeType": "YulAssignment",
"src": "19696:62:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "19730:9:40",
"nodeType": "YulIdentifier",
"src": "19730:9:40"
},
{
"name": "offset",
"nativeSrc": "19741:6:40",
"nodeType": "YulIdentifier",
"src": "19741:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19726:3:40",
"nodeType": "YulIdentifier",
"src": "19726:3:40"
},
"nativeSrc": "19726:22:40",
"nodeType": "YulFunctionCall",
"src": "19726:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "19750:7:40",
"nodeType": "YulIdentifier",
"src": "19750:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint32",
"nativeSrc": "19706:19:40",
"nodeType": "YulIdentifier",
"src": "19706:19:40"
},
"nativeSrc": "19706:52:40",
"nodeType": "YulFunctionCall",
"src": "19706:52:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "19696:6:40",
"nodeType": "YulIdentifier",
"src": "19696:6:40"
}
]
}
]
},
{
"nativeSrc": "19778:117:40",
"nodeType": "YulBlock",
"src": "19778:117:40",
"statements": [
{
"nativeSrc": "19793:16:40",
"nodeType": "YulVariableDeclaration",
"src": "19793:16:40",
"value": {
"kind": "number",
"nativeSrc": "19807:2:40",
"nodeType": "YulLiteral",
"src": "19807:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "19797:6:40",
"nodeType": "YulTypedName",
"src": "19797:6:40",
"type": ""
}
]
},
{
"nativeSrc": "19823:62:40",
"nodeType": "YulAssignment",
"src": "19823:62:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "19857:9:40",
"nodeType": "YulIdentifier",
"src": "19857:9:40"
},
{
"name": "offset",
"nativeSrc": "19868:6:40",
"nodeType": "YulIdentifier",
"src": "19868:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19853:3:40",
"nodeType": "YulIdentifier",
"src": "19853:3:40"
},
"nativeSrc": "19853:22:40",
"nodeType": "YulFunctionCall",
"src": "19853:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "19877:7:40",
"nodeType": "YulIdentifier",
"src": "19877:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint16",
"nativeSrc": "19833:19:40",
"nodeType": "YulIdentifier",
"src": "19833:19:40"
},
"nativeSrc": "19833:52:40",
"nodeType": "YulFunctionCall",
"src": "19833:52:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "19823:6:40",
"nodeType": "YulIdentifier",
"src": "19823:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint32t_uint16",
"nativeSrc": "19432:470:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "19475:9:40",
"nodeType": "YulTypedName",
"src": "19475:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "19486:7:40",
"nodeType": "YulTypedName",
"src": "19486:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "19498:6:40",
"nodeType": "YulTypedName",
"src": "19498:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "19506:6:40",
"nodeType": "YulTypedName",
"src": "19506:6:40",
"type": ""
}
],
"src": "19432:470:40"
},
{
"body": {
"nativeSrc": "19966:40:40",
"nodeType": "YulBlock",
"src": "19966:40:40",
"statements": [
{
"nativeSrc": "19977:22:40",
"nodeType": "YulAssignment",
"src": "19977:22:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "19993:5:40",
"nodeType": "YulIdentifier",
"src": "19993:5:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "19987:5:40",
"nodeType": "YulIdentifier",
"src": "19987:5:40"
},
"nativeSrc": "19987:12:40",
"nodeType": "YulFunctionCall",
"src": "19987:12:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "19977:6:40",
"nodeType": "YulIdentifier",
"src": "19977:6:40"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "19908:98:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "19949:5:40",
"nodeType": "YulTypedName",
"src": "19949:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "19959:6:40",
"nodeType": "YulTypedName",
"src": "19959:6:40",
"type": ""
}
],
"src": "19908:98:40"
},
{
"body": {
"nativeSrc": "20107:73:40",
"nodeType": "YulBlock",
"src": "20107:73:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "20124:3:40",
"nodeType": "YulIdentifier",
"src": "20124:3:40"
},
{
"name": "length",
"nativeSrc": "20129:6:40",
"nodeType": "YulIdentifier",
"src": "20129:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "20117:6:40",
"nodeType": "YulIdentifier",
"src": "20117:6:40"
},
"nativeSrc": "20117:19:40",
"nodeType": "YulFunctionCall",
"src": "20117:19:40"
},
"nativeSrc": "20117:19:40",
"nodeType": "YulExpressionStatement",
"src": "20117:19:40"
},
{
"nativeSrc": "20145:29:40",
"nodeType": "YulAssignment",
"src": "20145:29:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "20164:3:40",
"nodeType": "YulIdentifier",
"src": "20164:3:40"
},
{
"kind": "number",
"nativeSrc": "20169:4:40",
"nodeType": "YulLiteral",
"src": "20169:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20160:3:40",
"nodeType": "YulIdentifier",
"src": "20160:3:40"
},
"nativeSrc": "20160:14:40",
"nodeType": "YulFunctionCall",
"src": "20160:14:40"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "20145:11:40",
"nodeType": "YulIdentifier",
"src": "20145:11:40"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nativeSrc": "20012:168:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "20079:3:40",
"nodeType": "YulTypedName",
"src": "20079:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "20084:6:40",
"nodeType": "YulTypedName",
"src": "20084:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "20095:11:40",
"nodeType": "YulTypedName",
"src": "20095:11:40",
"type": ""
}
],
"src": "20012:168:40"
},
{
"body": {
"nativeSrc": "20276:283:40",
"nodeType": "YulBlock",
"src": "20276:283:40",
"statements": [
{
"nativeSrc": "20286:52:40",
"nodeType": "YulVariableDeclaration",
"src": "20286:52:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "20332:5:40",
"nodeType": "YulIdentifier",
"src": "20332:5:40"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "20300:31:40",
"nodeType": "YulIdentifier",
"src": "20300:31:40"
},
"nativeSrc": "20300:38:40",
"nodeType": "YulFunctionCall",
"src": "20300:38:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "20290:6:40",
"nodeType": "YulTypedName",
"src": "20290:6:40",
"type": ""
}
]
},
{
"nativeSrc": "20347:77:40",
"nodeType": "YulAssignment",
"src": "20347:77:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "20412:3:40",
"nodeType": "YulIdentifier",
"src": "20412:3:40"
},
{
"name": "length",
"nativeSrc": "20417:6:40",
"nodeType": "YulIdentifier",
"src": "20417:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nativeSrc": "20354:57:40",
"nodeType": "YulIdentifier",
"src": "20354:57:40"
},
"nativeSrc": "20354:70:40",
"nodeType": "YulFunctionCall",
"src": "20354:70:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "20347:3:40",
"nodeType": "YulIdentifier",
"src": "20347:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "20472:5:40",
"nodeType": "YulIdentifier",
"src": "20472:5:40"
},
{
"kind": "number",
"nativeSrc": "20479:4:40",
"nodeType": "YulLiteral",
"src": "20479:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20468:3:40",
"nodeType": "YulIdentifier",
"src": "20468:3:40"
},
"nativeSrc": "20468:16:40",
"nodeType": "YulFunctionCall",
"src": "20468:16:40"
},
{
"name": "pos",
"nativeSrc": "20486:3:40",
"nodeType": "YulIdentifier",
"src": "20486:3:40"
},
{
"name": "length",
"nativeSrc": "20491:6:40",
"nodeType": "YulIdentifier",
"src": "20491:6:40"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "20433:34:40",
"nodeType": "YulIdentifier",
"src": "20433:34:40"
},
"nativeSrc": "20433:65:40",
"nodeType": "YulFunctionCall",
"src": "20433:65:40"
},
"nativeSrc": "20433:65:40",
"nodeType": "YulExpressionStatement",
"src": "20433:65:40"
},
{
"nativeSrc": "20507:46:40",
"nodeType": "YulAssignment",
"src": "20507:46:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "20518:3:40",
"nodeType": "YulIdentifier",
"src": "20518:3:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "20545:6:40",
"nodeType": "YulIdentifier",
"src": "20545:6:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "20523:21:40",
"nodeType": "YulIdentifier",
"src": "20523:21:40"
},
"nativeSrc": "20523:29:40",
"nodeType": "YulFunctionCall",
"src": "20523:29:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20514:3:40",
"nodeType": "YulIdentifier",
"src": "20514:3:40"
},
"nativeSrc": "20514:39:40",
"nodeType": "YulFunctionCall",
"src": "20514:39:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "20507:3:40",
"nodeType": "YulIdentifier",
"src": "20507:3:40"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "20186:373:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "20257:5:40",
"nodeType": "YulTypedName",
"src": "20257:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "20264:3:40",
"nodeType": "YulTypedName",
"src": "20264:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "20272:3:40",
"nodeType": "YulTypedName",
"src": "20272:3:40",
"type": ""
}
],
"src": "20186:373:40"
},
{
"body": {
"nativeSrc": "20681:193:40",
"nodeType": "YulBlock",
"src": "20681:193:40",
"statements": [
{
"nativeSrc": "20691:26:40",
"nodeType": "YulAssignment",
"src": "20691:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "20703:9:40",
"nodeType": "YulIdentifier",
"src": "20703:9:40"
},
{
"kind": "number",
"nativeSrc": "20714:2:40",
"nodeType": "YulLiteral",
"src": "20714:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20699:3:40",
"nodeType": "YulIdentifier",
"src": "20699:3:40"
},
"nativeSrc": "20699:18:40",
"nodeType": "YulFunctionCall",
"src": "20699:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "20691:4:40",
"nodeType": "YulIdentifier",
"src": "20691:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "20738:9:40",
"nodeType": "YulIdentifier",
"src": "20738:9:40"
},
{
"kind": "number",
"nativeSrc": "20749:1:40",
"nodeType": "YulLiteral",
"src": "20749:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20734:3:40",
"nodeType": "YulIdentifier",
"src": "20734:3:40"
},
"nativeSrc": "20734:17:40",
"nodeType": "YulFunctionCall",
"src": "20734:17:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "20757:4:40",
"nodeType": "YulIdentifier",
"src": "20757:4:40"
},
{
"name": "headStart",
"nativeSrc": "20763:9:40",
"nodeType": "YulIdentifier",
"src": "20763:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "20753:3:40",
"nodeType": "YulIdentifier",
"src": "20753:3:40"
},
"nativeSrc": "20753:20:40",
"nodeType": "YulFunctionCall",
"src": "20753:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "20727:6:40",
"nodeType": "YulIdentifier",
"src": "20727:6:40"
},
"nativeSrc": "20727:47:40",
"nodeType": "YulFunctionCall",
"src": "20727:47:40"
},
"nativeSrc": "20727:47:40",
"nodeType": "YulExpressionStatement",
"src": "20727:47:40"
},
{
"nativeSrc": "20783:84:40",
"nodeType": "YulAssignment",
"src": "20783:84:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "20853:6:40",
"nodeType": "YulIdentifier",
"src": "20853:6:40"
},
{
"name": "tail",
"nativeSrc": "20862:4:40",
"nodeType": "YulIdentifier",
"src": "20862:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "20791:61:40",
"nodeType": "YulIdentifier",
"src": "20791:61:40"
},
"nativeSrc": "20791:76:40",
"nodeType": "YulFunctionCall",
"src": "20791:76:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "20783:4:40",
"nodeType": "YulIdentifier",
"src": "20783:4:40"
}
]
}
]
},
"name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed",
"nativeSrc": "20565:309:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "20653:9:40",
"nodeType": "YulTypedName",
"src": "20653:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "20665:6:40",
"nodeType": "YulTypedName",
"src": "20665:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "20676:4:40",
"nodeType": "YulTypedName",
"src": "20676:4:40",
"type": ""
}
],
"src": "20565:309:40"
},
{
"body": {
"nativeSrc": "20912:28:40",
"nodeType": "YulBlock",
"src": "20912:28:40",
"statements": [
{
"nativeSrc": "20922:12:40",
"nodeType": "YulAssignment",
"src": "20922:12:40",
"value": {
"name": "value",
"nativeSrc": "20929:5:40",
"nodeType": "YulIdentifier",
"src": "20929:5:40"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "20922:3:40",
"nodeType": "YulIdentifier",
"src": "20922:3:40"
}
]
}
]
},
"name": "identity",
"nativeSrc": "20880:60:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "20898:5:40",
"nodeType": "YulTypedName",
"src": "20898:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "20908:3:40",
"nodeType": "YulTypedName",
"src": "20908:3:40",
"type": ""
}
],
"src": "20880:60:40"
},
{
"body": {
"nativeSrc": "21006:82:40",
"nodeType": "YulBlock",
"src": "21006:82:40",
"statements": [
{
"nativeSrc": "21016:66:40",
"nodeType": "YulAssignment",
"src": "21016:66:40",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "21074:5:40",
"nodeType": "YulIdentifier",
"src": "21074:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "21056:17:40",
"nodeType": "YulIdentifier",
"src": "21056:17:40"
},
"nativeSrc": "21056:24:40",
"nodeType": "YulFunctionCall",
"src": "21056:24:40"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "21047:8:40",
"nodeType": "YulIdentifier",
"src": "21047:8:40"
},
"nativeSrc": "21047:34:40",
"nodeType": "YulFunctionCall",
"src": "21047:34:40"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "21029:17:40",
"nodeType": "YulIdentifier",
"src": "21029:17:40"
},
"nativeSrc": "21029:53:40",
"nodeType": "YulFunctionCall",
"src": "21029:53:40"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "21016:9:40",
"nodeType": "YulIdentifier",
"src": "21016:9:40"
}
]
}
]
},
"name": "convert_t_uint160_to_t_uint160",
"nativeSrc": "20946:142:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "20986:5:40",
"nodeType": "YulTypedName",
"src": "20986:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "20996:9:40",
"nodeType": "YulTypedName",
"src": "20996:9:40",
"type": ""
}
],
"src": "20946:142:40"
},
{
"body": {
"nativeSrc": "21154:66:40",
"nodeType": "YulBlock",
"src": "21154:66:40",
"statements": [
{
"nativeSrc": "21164:50:40",
"nodeType": "YulAssignment",
"src": "21164:50:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "21208:5:40",
"nodeType": "YulIdentifier",
"src": "21208:5:40"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_uint160",
"nativeSrc": "21177:30:40",
"nodeType": "YulIdentifier",
"src": "21177:30:40"
},
"nativeSrc": "21177:37:40",
"nodeType": "YulFunctionCall",
"src": "21177:37:40"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "21164:9:40",
"nodeType": "YulIdentifier",
"src": "21164:9:40"
}
]
}
]
},
"name": "convert_t_uint160_to_t_address",
"nativeSrc": "21094:126:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "21134:5:40",
"nodeType": "YulTypedName",
"src": "21134:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "21144:9:40",
"nodeType": "YulTypedName",
"src": "21144:9:40",
"type": ""
}
],
"src": "21094:126:40"
},
{
"body": {
"nativeSrc": "21314:66:40",
"nodeType": "YulBlock",
"src": "21314:66:40",
"statements": [
{
"nativeSrc": "21324:50:40",
"nodeType": "YulAssignment",
"src": "21324:50:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "21368:5:40",
"nodeType": "YulIdentifier",
"src": "21368:5:40"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_address",
"nativeSrc": "21337:30:40",
"nodeType": "YulIdentifier",
"src": "21337:30:40"
},
"nativeSrc": "21337:37:40",
"nodeType": "YulFunctionCall",
"src": "21337:37:40"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "21324:9:40",
"nodeType": "YulIdentifier",
"src": "21324:9:40"
}
]
}
]
},
"name": "convert_t_contract$_ILayerZeroEndpointV2_$202_to_t_address",
"nativeSrc": "21226:154:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "21294:5:40",
"nodeType": "YulTypedName",
"src": "21294:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "21304:9:40",
"nodeType": "YulTypedName",
"src": "21304:9:40",
"type": ""
}
],
"src": "21226:154:40"
},
{
"body": {
"nativeSrc": "21479:94:40",
"nodeType": "YulBlock",
"src": "21479:94:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "21496:3:40",
"nodeType": "YulIdentifier",
"src": "21496:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "21560:5:40",
"nodeType": "YulIdentifier",
"src": "21560:5:40"
}
],
"functionName": {
"name": "convert_t_contract$_ILayerZeroEndpointV2_$202_to_t_address",
"nativeSrc": "21501:58:40",
"nodeType": "YulIdentifier",
"src": "21501:58:40"
},
"nativeSrc": "21501:65:40",
"nodeType": "YulFunctionCall",
"src": "21501:65:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "21489:6:40",
"nodeType": "YulIdentifier",
"src": "21489:6:40"
},
"nativeSrc": "21489:78:40",
"nodeType": "YulFunctionCall",
"src": "21489:78:40"
},
"nativeSrc": "21489:78:40",
"nodeType": "YulExpressionStatement",
"src": "21489:78:40"
}
]
},
"name": "abi_encode_t_contract$_ILayerZeroEndpointV2_$202_to_t_address_fromStack",
"nativeSrc": "21386:187:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "21467:5:40",
"nodeType": "YulTypedName",
"src": "21467:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "21474:3:40",
"nodeType": "YulTypedName",
"src": "21474:3:40",
"type": ""
}
],
"src": "21386:187:40"
},
{
"body": {
"nativeSrc": "21705:152:40",
"nodeType": "YulBlock",
"src": "21705:152:40",
"statements": [
{
"nativeSrc": "21715:26:40",
"nodeType": "YulAssignment",
"src": "21715:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "21727:9:40",
"nodeType": "YulIdentifier",
"src": "21727:9:40"
},
{
"kind": "number",
"nativeSrc": "21738:2:40",
"nodeType": "YulLiteral",
"src": "21738:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "21723:3:40",
"nodeType": "YulIdentifier",
"src": "21723:3:40"
},
"nativeSrc": "21723:18:40",
"nodeType": "YulFunctionCall",
"src": "21723:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "21715:4:40",
"nodeType": "YulIdentifier",
"src": "21715:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "21823:6:40",
"nodeType": "YulIdentifier",
"src": "21823:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "21836:9:40",
"nodeType": "YulIdentifier",
"src": "21836:9:40"
},
{
"kind": "number",
"nativeSrc": "21847:1:40",
"nodeType": "YulLiteral",
"src": "21847:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "21832:3:40",
"nodeType": "YulIdentifier",
"src": "21832:3:40"
},
"nativeSrc": "21832:17:40",
"nodeType": "YulFunctionCall",
"src": "21832:17:40"
}
],
"functionName": {
"name": "abi_encode_t_contract$_ILayerZeroEndpointV2_$202_to_t_address_fromStack",
"nativeSrc": "21751:71:40",
"nodeType": "YulIdentifier",
"src": "21751:71:40"
},
"nativeSrc": "21751:99:40",
"nodeType": "YulFunctionCall",
"src": "21751:99:40"
},
"nativeSrc": "21751:99:40",
"nodeType": "YulExpressionStatement",
"src": "21751:99:40"
}
]
},
"name": "abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$202__to_t_address__fromStack_reversed",
"nativeSrc": "21579:278:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "21677:9:40",
"nodeType": "YulTypedName",
"src": "21677:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "21689:6:40",
"nodeType": "YulTypedName",
"src": "21689:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "21700:4:40",
"nodeType": "YulTypedName",
"src": "21700:4:40",
"type": ""
}
],
"src": "21579:278:40"
},
{
"body": {
"nativeSrc": "21929:263:40",
"nodeType": "YulBlock",
"src": "21929:263:40",
"statements": [
{
"body": {
"nativeSrc": "21975:83:40",
"nodeType": "YulBlock",
"src": "21975:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "21977:77:40",
"nodeType": "YulIdentifier",
"src": "21977:77:40"
},
"nativeSrc": "21977:79:40",
"nodeType": "YulFunctionCall",
"src": "21977:79:40"
},
"nativeSrc": "21977:79:40",
"nodeType": "YulExpressionStatement",
"src": "21977:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "21950:7:40",
"nodeType": "YulIdentifier",
"src": "21950:7:40"
},
{
"name": "headStart",
"nativeSrc": "21959:9:40",
"nodeType": "YulIdentifier",
"src": "21959:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "21946:3:40",
"nodeType": "YulIdentifier",
"src": "21946:3:40"
},
"nativeSrc": "21946:23:40",
"nodeType": "YulFunctionCall",
"src": "21946:23:40"
},
{
"kind": "number",
"nativeSrc": "21971:2:40",
"nodeType": "YulLiteral",
"src": "21971:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "21942:3:40",
"nodeType": "YulIdentifier",
"src": "21942:3:40"
},
"nativeSrc": "21942:32:40",
"nodeType": "YulFunctionCall",
"src": "21942:32:40"
},
"nativeSrc": "21939:119:40",
"nodeType": "YulIf",
"src": "21939:119:40"
},
{
"nativeSrc": "22068:117:40",
"nodeType": "YulBlock",
"src": "22068:117:40",
"statements": [
{
"nativeSrc": "22083:15:40",
"nodeType": "YulVariableDeclaration",
"src": "22083:15:40",
"value": {
"kind": "number",
"nativeSrc": "22097:1:40",
"nodeType": "YulLiteral",
"src": "22097:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "22087:6:40",
"nodeType": "YulTypedName",
"src": "22087:6:40",
"type": ""
}
]
},
{
"nativeSrc": "22112:63:40",
"nodeType": "YulAssignment",
"src": "22112:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "22147:9:40",
"nodeType": "YulIdentifier",
"src": "22147:9:40"
},
{
"name": "offset",
"nativeSrc": "22158:6:40",
"nodeType": "YulIdentifier",
"src": "22158:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22143:3:40",
"nodeType": "YulIdentifier",
"src": "22143:3:40"
},
"nativeSrc": "22143:22:40",
"nodeType": "YulFunctionCall",
"src": "22143:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "22167:7:40",
"nodeType": "YulIdentifier",
"src": "22167:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "22122:20:40",
"nodeType": "YulIdentifier",
"src": "22122:20:40"
},
"nativeSrc": "22122:53:40",
"nodeType": "YulFunctionCall",
"src": "22122:53:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "22112:6:40",
"nodeType": "YulIdentifier",
"src": "22112:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "21863:329:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "21899:9:40",
"nodeType": "YulTypedName",
"src": "21899:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "21910:7:40",
"nodeType": "YulTypedName",
"src": "21910:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "21922:6:40",
"nodeType": "YulTypedName",
"src": "21922:6:40",
"type": ""
}
],
"src": "21863:329:40"
},
{
"body": {
"nativeSrc": "22294:122:40",
"nodeType": "YulBlock",
"src": "22294:122:40",
"statements": [
{
"nativeSrc": "22304:26:40",
"nodeType": "YulAssignment",
"src": "22304:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "22316:9:40",
"nodeType": "YulIdentifier",
"src": "22316:9:40"
},
{
"kind": "number",
"nativeSrc": "22327:2:40",
"nodeType": "YulLiteral",
"src": "22327:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22312:3:40",
"nodeType": "YulIdentifier",
"src": "22312:3:40"
},
"nativeSrc": "22312:18:40",
"nodeType": "YulFunctionCall",
"src": "22312:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "22304:4:40",
"nodeType": "YulIdentifier",
"src": "22304:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "22382:6:40",
"nodeType": "YulIdentifier",
"src": "22382:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "22395:9:40",
"nodeType": "YulIdentifier",
"src": "22395:9:40"
},
{
"kind": "number",
"nativeSrc": "22406:1:40",
"nodeType": "YulLiteral",
"src": "22406:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22391:3:40",
"nodeType": "YulIdentifier",
"src": "22391:3:40"
},
"nativeSrc": "22391:17:40",
"nodeType": "YulFunctionCall",
"src": "22391:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64_fromStack",
"nativeSrc": "22340:41:40",
"nodeType": "YulIdentifier",
"src": "22340:41:40"
},
"nativeSrc": "22340:69:40",
"nodeType": "YulFunctionCall",
"src": "22340:69:40"
},
"nativeSrc": "22340:69:40",
"nodeType": "YulExpressionStatement",
"src": "22340:69:40"
}
]
},
"name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed",
"nativeSrc": "22198:218:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "22266:9:40",
"nodeType": "YulTypedName",
"src": "22266:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "22278:6:40",
"nodeType": "YulTypedName",
"src": "22278:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "22289:4:40",
"nodeType": "YulTypedName",
"src": "22289:4:40",
"type": ""
}
],
"src": "22198:218:40"
},
{
"body": {
"nativeSrc": "22565:724:40",
"nodeType": "YulBlock",
"src": "22565:724:40",
"statements": [
{
"body": {
"nativeSrc": "22612:83:40",
"nodeType": "YulBlock",
"src": "22612:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "22614:77:40",
"nodeType": "YulIdentifier",
"src": "22614:77:40"
},
"nativeSrc": "22614:79:40",
"nodeType": "YulFunctionCall",
"src": "22614:79:40"
},
"nativeSrc": "22614:79:40",
"nodeType": "YulExpressionStatement",
"src": "22614:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "22586:7:40",
"nodeType": "YulIdentifier",
"src": "22586:7:40"
},
{
"name": "headStart",
"nativeSrc": "22595:9:40",
"nodeType": "YulIdentifier",
"src": "22595:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "22582:3:40",
"nodeType": "YulIdentifier",
"src": "22582:3:40"
},
"nativeSrc": "22582:23:40",
"nodeType": "YulFunctionCall",
"src": "22582:23:40"
},
{
"kind": "number",
"nativeSrc": "22607:3:40",
"nodeType": "YulLiteral",
"src": "22607:3:40",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "22578:3:40",
"nodeType": "YulIdentifier",
"src": "22578:3:40"
},
"nativeSrc": "22578:33:40",
"nodeType": "YulFunctionCall",
"src": "22578:33:40"
},
"nativeSrc": "22575:120:40",
"nodeType": "YulIf",
"src": "22575:120:40"
},
{
"nativeSrc": "22705:141:40",
"nodeType": "YulBlock",
"src": "22705:141:40",
"statements": [
{
"nativeSrc": "22720:15:40",
"nodeType": "YulVariableDeclaration",
"src": "22720:15:40",
"value": {
"kind": "number",
"nativeSrc": "22734:1:40",
"nodeType": "YulLiteral",
"src": "22734:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "22724:6:40",
"nodeType": "YulTypedName",
"src": "22724:6:40",
"type": ""
}
]
},
{
"nativeSrc": "22749:87:40",
"nodeType": "YulAssignment",
"src": "22749:87:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "22808:9:40",
"nodeType": "YulIdentifier",
"src": "22808:9:40"
},
{
"name": "offset",
"nativeSrc": "22819:6:40",
"nodeType": "YulIdentifier",
"src": "22819:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22804:3:40",
"nodeType": "YulIdentifier",
"src": "22804:3:40"
},
"nativeSrc": "22804:22:40",
"nodeType": "YulFunctionCall",
"src": "22804:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "22828:7:40",
"nodeType": "YulIdentifier",
"src": "22828:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_Origin_$40_calldata_ptr",
"nativeSrc": "22759:44:40",
"nodeType": "YulIdentifier",
"src": "22759:44:40"
},
"nativeSrc": "22759:77:40",
"nodeType": "YulFunctionCall",
"src": "22759:77:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "22749:6:40",
"nodeType": "YulIdentifier",
"src": "22749:6:40"
}
]
}
]
},
{
"nativeSrc": "22856:297:40",
"nodeType": "YulBlock",
"src": "22856:297:40",
"statements": [
{
"nativeSrc": "22871:46:40",
"nodeType": "YulVariableDeclaration",
"src": "22871:46:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "22902:9:40",
"nodeType": "YulIdentifier",
"src": "22902:9:40"
},
{
"kind": "number",
"nativeSrc": "22913:2:40",
"nodeType": "YulLiteral",
"src": "22913:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22898:3:40",
"nodeType": "YulIdentifier",
"src": "22898:3:40"
},
"nativeSrc": "22898:18:40",
"nodeType": "YulFunctionCall",
"src": "22898:18:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "22885:12:40",
"nodeType": "YulIdentifier",
"src": "22885:12:40"
},
"nativeSrc": "22885:32:40",
"nodeType": "YulFunctionCall",
"src": "22885:32:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "22875:6:40",
"nodeType": "YulTypedName",
"src": "22875:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "22964:83:40",
"nodeType": "YulBlock",
"src": "22964:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "22966:77:40",
"nodeType": "YulIdentifier",
"src": "22966:77:40"
},
"nativeSrc": "22966:79:40",
"nodeType": "YulFunctionCall",
"src": "22966:79:40"
},
"nativeSrc": "22966:79:40",
"nodeType": "YulExpressionStatement",
"src": "22966:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "22936:6:40",
"nodeType": "YulIdentifier",
"src": "22936:6:40"
},
{
"kind": "number",
"nativeSrc": "22944:18:40",
"nodeType": "YulLiteral",
"src": "22944:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "22933:2:40",
"nodeType": "YulIdentifier",
"src": "22933:2:40"
},
"nativeSrc": "22933:30:40",
"nodeType": "YulFunctionCall",
"src": "22933:30:40"
},
"nativeSrc": "22930:117:40",
"nodeType": "YulIf",
"src": "22930:117:40"
},
{
"nativeSrc": "23061:82:40",
"nodeType": "YulAssignment",
"src": "23061:82:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "23115:9:40",
"nodeType": "YulIdentifier",
"src": "23115:9:40"
},
{
"name": "offset",
"nativeSrc": "23126:6:40",
"nodeType": "YulIdentifier",
"src": "23126:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "23111:3:40",
"nodeType": "YulIdentifier",
"src": "23111:3:40"
},
"nativeSrc": "23111:22:40",
"nodeType": "YulFunctionCall",
"src": "23111:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "23135:7:40",
"nodeType": "YulIdentifier",
"src": "23135:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes_calldata_ptr",
"nativeSrc": "23079:31:40",
"nodeType": "YulIdentifier",
"src": "23079:31:40"
},
"nativeSrc": "23079:64:40",
"nodeType": "YulFunctionCall",
"src": "23079:64:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "23061:6:40",
"nodeType": "YulIdentifier",
"src": "23061:6:40"
},
{
"name": "value2",
"nativeSrc": "23069:6:40",
"nodeType": "YulIdentifier",
"src": "23069:6:40"
}
]
}
]
},
{
"nativeSrc": "23163:119:40",
"nodeType": "YulBlock",
"src": "23163:119:40",
"statements": [
{
"nativeSrc": "23178:17:40",
"nodeType": "YulVariableDeclaration",
"src": "23178:17:40",
"value": {
"kind": "number",
"nativeSrc": "23192:3:40",
"nodeType": "YulLiteral",
"src": "23192:3:40",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nativeSrc": "23182:6:40",
"nodeType": "YulTypedName",
"src": "23182:6:40",
"type": ""
}
]
},
{
"nativeSrc": "23209:63:40",
"nodeType": "YulAssignment",
"src": "23209:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "23244:9:40",
"nodeType": "YulIdentifier",
"src": "23244:9:40"
},
{
"name": "offset",
"nativeSrc": "23255:6:40",
"nodeType": "YulIdentifier",
"src": "23255:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "23240:3:40",
"nodeType": "YulIdentifier",
"src": "23240:3:40"
},
"nativeSrc": "23240:22:40",
"nodeType": "YulFunctionCall",
"src": "23240:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "23264:7:40",
"nodeType": "YulIdentifier",
"src": "23264:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "23219:20:40",
"nodeType": "YulIdentifier",
"src": "23219:20:40"
},
"nativeSrc": "23219:53:40",
"nodeType": "YulFunctionCall",
"src": "23219:53:40"
},
"variableNames": [
{
"name": "value3",
"nativeSrc": "23209:6:40",
"nodeType": "YulIdentifier",
"src": "23209:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_Origin_$40_calldata_ptrt_bytes_calldata_ptrt_address",
"nativeSrc": "22422:867:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "22511:9:40",
"nodeType": "YulTypedName",
"src": "22511:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "22522:7:40",
"nodeType": "YulTypedName",
"src": "22522:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "22534:6:40",
"nodeType": "YulTypedName",
"src": "22534:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "22542:6:40",
"nodeType": "YulTypedName",
"src": "22542:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "22550:6:40",
"nodeType": "YulTypedName",
"src": "22550:6:40",
"type": ""
},
{
"name": "value3",
"nativeSrc": "22558:6:40",
"nodeType": "YulTypedName",
"src": "22558:6:40",
"type": ""
}
],
"src": "22422:867:40"
},
{
"body": {
"nativeSrc": "23460:478:40",
"nodeType": "YulBlock",
"src": "23460:478:40",
"statements": [
{
"body": {
"nativeSrc": "23509:83:40",
"nodeType": "YulBlock",
"src": "23509:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "23511:77:40",
"nodeType": "YulIdentifier",
"src": "23511:77:40"
},
"nativeSrc": "23511:79:40",
"nodeType": "YulFunctionCall",
"src": "23511:79:40"
},
"nativeSrc": "23511:79:40",
"nodeType": "YulExpressionStatement",
"src": "23511:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "23488:6:40",
"nodeType": "YulIdentifier",
"src": "23488:6:40"
},
{
"kind": "number",
"nativeSrc": "23496:4:40",
"nodeType": "YulLiteral",
"src": "23496:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "23484:3:40",
"nodeType": "YulIdentifier",
"src": "23484:3:40"
},
"nativeSrc": "23484:17:40",
"nodeType": "YulFunctionCall",
"src": "23484:17:40"
},
{
"name": "end",
"nativeSrc": "23503:3:40",
"nodeType": "YulIdentifier",
"src": "23503:3:40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "23480:3:40",
"nodeType": "YulIdentifier",
"src": "23480:3:40"
},
"nativeSrc": "23480:27:40",
"nodeType": "YulFunctionCall",
"src": "23480:27:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "23473:6:40",
"nodeType": "YulIdentifier",
"src": "23473:6:40"
},
"nativeSrc": "23473:35:40",
"nodeType": "YulFunctionCall",
"src": "23473:35:40"
},
"nativeSrc": "23470:122:40",
"nodeType": "YulIf",
"src": "23470:122:40"
},
{
"nativeSrc": "23601:30:40",
"nodeType": "YulAssignment",
"src": "23601:30:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "23624:6:40",
"nodeType": "YulIdentifier",
"src": "23624:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "23611:12:40",
"nodeType": "YulIdentifier",
"src": "23611:12:40"
},
"nativeSrc": "23611:20:40",
"nodeType": "YulFunctionCall",
"src": "23611:20:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "23601:6:40",
"nodeType": "YulIdentifier",
"src": "23601:6:40"
}
]
},
{
"body": {
"nativeSrc": "23674:83:40",
"nodeType": "YulBlock",
"src": "23674:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
"nativeSrc": "23676:77:40",
"nodeType": "YulIdentifier",
"src": "23676:77:40"
},
"nativeSrc": "23676:79:40",
"nodeType": "YulFunctionCall",
"src": "23676:79:40"
},
"nativeSrc": "23676:79:40",
"nodeType": "YulExpressionStatement",
"src": "23676:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "23646:6:40",
"nodeType": "YulIdentifier",
"src": "23646:6:40"
},
{
"kind": "number",
"nativeSrc": "23654:18:40",
"nodeType": "YulLiteral",
"src": "23654:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "23643:2:40",
"nodeType": "YulIdentifier",
"src": "23643:2:40"
},
"nativeSrc": "23643:30:40",
"nodeType": "YulFunctionCall",
"src": "23643:30:40"
},
"nativeSrc": "23640:117:40",
"nodeType": "YulIf",
"src": "23640:117:40"
},
{
"nativeSrc": "23766:29:40",
"nodeType": "YulAssignment",
"src": "23766:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "23782:6:40",
"nodeType": "YulIdentifier",
"src": "23782:6:40"
},
{
"kind": "number",
"nativeSrc": "23790:4:40",
"nodeType": "YulLiteral",
"src": "23790:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "23778:3:40",
"nodeType": "YulIdentifier",
"src": "23778:3:40"
},
"nativeSrc": "23778:17:40",
"nodeType": "YulFunctionCall",
"src": "23778:17:40"
},
"variableNames": [
{
"name": "arrayPos",
"nativeSrc": "23766:8:40",
"nodeType": "YulIdentifier",
"src": "23766:8:40"
}
]
},
{
"body": {
"nativeSrc": "23849:83:40",
"nodeType": "YulBlock",
"src": "23849:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nativeSrc": "23851:77:40",
"nodeType": "YulIdentifier",
"src": "23851:77:40"
},
"nativeSrc": "23851:79:40",
"nodeType": "YulFunctionCall",
"src": "23851:79:40"
},
"nativeSrc": "23851:79:40",
"nodeType": "YulExpressionStatement",
"src": "23851:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "arrayPos",
"nativeSrc": "23814:8:40",
"nodeType": "YulIdentifier",
"src": "23814:8:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "23828:6:40",
"nodeType": "YulIdentifier",
"src": "23828:6:40"
},
{
"kind": "number",
"nativeSrc": "23836:4:40",
"nodeType": "YulLiteral",
"src": "23836:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "23824:3:40",
"nodeType": "YulIdentifier",
"src": "23824:3:40"
},
"nativeSrc": "23824:17:40",
"nodeType": "YulFunctionCall",
"src": "23824:17:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "23810:3:40",
"nodeType": "YulIdentifier",
"src": "23810:3:40"
},
"nativeSrc": "23810:32:40",
"nodeType": "YulFunctionCall",
"src": "23810:32:40"
},
{
"name": "end",
"nativeSrc": "23844:3:40",
"nodeType": "YulIdentifier",
"src": "23844:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "23807:2:40",
"nodeType": "YulIdentifier",
"src": "23807:2:40"
},
"nativeSrc": "23807:41:40",
"nodeType": "YulFunctionCall",
"src": "23807:41:40"
},
"nativeSrc": "23804:128:40",
"nodeType": "YulIf",
"src": "23804:128:40"
}
]
},
"name": "abi_decode_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr",
"nativeSrc": "23331:607:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "23427:6:40",
"nodeType": "YulTypedName",
"src": "23427:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "23435:3:40",
"nodeType": "YulTypedName",
"src": "23435:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "arrayPos",
"nativeSrc": "23443:8:40",
"nodeType": "YulTypedName",
"src": "23443:8:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "23453:6:40",
"nodeType": "YulTypedName",
"src": "23453:6:40",
"type": ""
}
],
"src": "23331:607:40"
},
{
"body": {
"nativeSrc": "24084:497:40",
"nodeType": "YulBlock",
"src": "24084:497:40",
"statements": [
{
"body": {
"nativeSrc": "24130:83:40",
"nodeType": "YulBlock",
"src": "24130:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "24132:77:40",
"nodeType": "YulIdentifier",
"src": "24132:77:40"
},
"nativeSrc": "24132:79:40",
"nodeType": "YulFunctionCall",
"src": "24132:79:40"
},
"nativeSrc": "24132:79:40",
"nodeType": "YulExpressionStatement",
"src": "24132:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "24105:7:40",
"nodeType": "YulIdentifier",
"src": "24105:7:40"
},
{
"name": "headStart",
"nativeSrc": "24114:9:40",
"nodeType": "YulIdentifier",
"src": "24114:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "24101:3:40",
"nodeType": "YulIdentifier",
"src": "24101:3:40"
},
"nativeSrc": "24101:23:40",
"nodeType": "YulFunctionCall",
"src": "24101:23:40"
},
{
"kind": "number",
"nativeSrc": "24126:2:40",
"nodeType": "YulLiteral",
"src": "24126:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "24097:3:40",
"nodeType": "YulIdentifier",
"src": "24097:3:40"
},
"nativeSrc": "24097:32:40",
"nodeType": "YulFunctionCall",
"src": "24097:32:40"
},
"nativeSrc": "24094:119:40",
"nodeType": "YulIf",
"src": "24094:119:40"
},
{
"nativeSrc": "24223:351:40",
"nodeType": "YulBlock",
"src": "24223:351:40",
"statements": [
{
"nativeSrc": "24238:45:40",
"nodeType": "YulVariableDeclaration",
"src": "24238:45:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "24269:9:40",
"nodeType": "YulIdentifier",
"src": "24269:9:40"
},
{
"kind": "number",
"nativeSrc": "24280:1:40",
"nodeType": "YulLiteral",
"src": "24280:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24265:3:40",
"nodeType": "YulIdentifier",
"src": "24265:3:40"
},
"nativeSrc": "24265:17:40",
"nodeType": "YulFunctionCall",
"src": "24265:17:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "24252:12:40",
"nodeType": "YulIdentifier",
"src": "24252:12:40"
},
"nativeSrc": "24252:31:40",
"nodeType": "YulFunctionCall",
"src": "24252:31:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "24242:6:40",
"nodeType": "YulTypedName",
"src": "24242:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "24330:83:40",
"nodeType": "YulBlock",
"src": "24330:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "24332:77:40",
"nodeType": "YulIdentifier",
"src": "24332:77:40"
},
"nativeSrc": "24332:79:40",
"nodeType": "YulFunctionCall",
"src": "24332:79:40"
},
"nativeSrc": "24332:79:40",
"nodeType": "YulExpressionStatement",
"src": "24332:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "24302:6:40",
"nodeType": "YulIdentifier",
"src": "24302:6:40"
},
{
"kind": "number",
"nativeSrc": "24310:18:40",
"nodeType": "YulLiteral",
"src": "24310:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "24299:2:40",
"nodeType": "YulIdentifier",
"src": "24299:2:40"
},
"nativeSrc": "24299:30:40",
"nodeType": "YulFunctionCall",
"src": "24299:30:40"
},
"nativeSrc": "24296:117:40",
"nodeType": "YulIf",
"src": "24296:117:40"
},
{
"nativeSrc": "24427:137:40",
"nodeType": "YulAssignment",
"src": "24427:137:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "24536:9:40",
"nodeType": "YulIdentifier",
"src": "24536:9:40"
},
{
"name": "offset",
"nativeSrc": "24547:6:40",
"nodeType": "YulIdentifier",
"src": "24547:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24532:3:40",
"nodeType": "YulIdentifier",
"src": "24532:3:40"
},
"nativeSrc": "24532:22:40",
"nodeType": "YulFunctionCall",
"src": "24532:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "24556:7:40",
"nodeType": "YulIdentifier",
"src": "24556:7:40"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr",
"nativeSrc": "24445:86:40",
"nodeType": "YulIdentifier",
"src": "24445:86:40"
},
"nativeSrc": "24445:119:40",
"nodeType": "YulFunctionCall",
"src": "24445:119:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "24427:6:40",
"nodeType": "YulIdentifier",
"src": "24427:6:40"
},
{
"name": "value1",
"nativeSrc": "24435:6:40",
"nodeType": "YulIdentifier",
"src": "24435:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr",
"nativeSrc": "23944:637:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "24046:9:40",
"nodeType": "YulTypedName",
"src": "24046:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "24057:7:40",
"nodeType": "YulTypedName",
"src": "24057:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "24069:6:40",
"nodeType": "YulTypedName",
"src": "24069:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "24077:6:40",
"nodeType": "YulTypedName",
"src": "24077:6:40",
"type": ""
}
],
"src": "23944:637:40"
},
{
"body": {
"nativeSrc": "24652:262:40",
"nodeType": "YulBlock",
"src": "24652:262:40",
"statements": [
{
"body": {
"nativeSrc": "24698:83:40",
"nodeType": "YulBlock",
"src": "24698:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "24700:77:40",
"nodeType": "YulIdentifier",
"src": "24700:77:40"
},
"nativeSrc": "24700:79:40",
"nodeType": "YulFunctionCall",
"src": "24700:79:40"
},
"nativeSrc": "24700:79:40",
"nodeType": "YulExpressionStatement",
"src": "24700:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "24673:7:40",
"nodeType": "YulIdentifier",
"src": "24673:7:40"
},
{
"name": "headStart",
"nativeSrc": "24682:9:40",
"nodeType": "YulIdentifier",
"src": "24682:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "24669:3:40",
"nodeType": "YulIdentifier",
"src": "24669:3:40"
},
"nativeSrc": "24669:23:40",
"nodeType": "YulFunctionCall",
"src": "24669:23:40"
},
{
"kind": "number",
"nativeSrc": "24694:2:40",
"nodeType": "YulLiteral",
"src": "24694:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "24665:3:40",
"nodeType": "YulIdentifier",
"src": "24665:3:40"
},
"nativeSrc": "24665:32:40",
"nodeType": "YulFunctionCall",
"src": "24665:32:40"
},
"nativeSrc": "24662:119:40",
"nodeType": "YulIf",
"src": "24662:119:40"
},
{
"nativeSrc": "24791:116:40",
"nodeType": "YulBlock",
"src": "24791:116:40",
"statements": [
{
"nativeSrc": "24806:15:40",
"nodeType": "YulVariableDeclaration",
"src": "24806:15:40",
"value": {
"kind": "number",
"nativeSrc": "24820:1:40",
"nodeType": "YulLiteral",
"src": "24820:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "24810:6:40",
"nodeType": "YulTypedName",
"src": "24810:6:40",
"type": ""
}
]
},
{
"nativeSrc": "24835:62:40",
"nodeType": "YulAssignment",
"src": "24835:62:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "24869:9:40",
"nodeType": "YulIdentifier",
"src": "24869:9:40"
},
{
"name": "offset",
"nativeSrc": "24880:6:40",
"nodeType": "YulIdentifier",
"src": "24880:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24865:3:40",
"nodeType": "YulIdentifier",
"src": "24865:3:40"
},
"nativeSrc": "24865:22:40",
"nodeType": "YulFunctionCall",
"src": "24865:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "24889:7:40",
"nodeType": "YulIdentifier",
"src": "24889:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint32",
"nativeSrc": "24845:19:40",
"nodeType": "YulIdentifier",
"src": "24845:19:40"
},
"nativeSrc": "24845:52:40",
"nodeType": "YulFunctionCall",
"src": "24845:52:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "24835:6:40",
"nodeType": "YulIdentifier",
"src": "24835:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint32",
"nativeSrc": "24587:327:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "24622:9:40",
"nodeType": "YulTypedName",
"src": "24622:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "24633:7:40",
"nodeType": "YulTypedName",
"src": "24633:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "24645:6:40",
"nodeType": "YulTypedName",
"src": "24645:6:40",
"type": ""
}
],
"src": "24587:327:40"
},
{
"body": {
"nativeSrc": "24985:53:40",
"nodeType": "YulBlock",
"src": "24985:53:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "25002:3:40",
"nodeType": "YulIdentifier",
"src": "25002:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "25025:5:40",
"nodeType": "YulIdentifier",
"src": "25025:5:40"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "25007:17:40",
"nodeType": "YulIdentifier",
"src": "25007:17:40"
},
"nativeSrc": "25007:24:40",
"nodeType": "YulFunctionCall",
"src": "25007:24:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "24995:6:40",
"nodeType": "YulIdentifier",
"src": "24995:6:40"
},
"nativeSrc": "24995:37:40",
"nodeType": "YulFunctionCall",
"src": "24995:37:40"
},
"nativeSrc": "24995:37:40",
"nodeType": "YulExpressionStatement",
"src": "24995:37:40"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "24920:118:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "24973:5:40",
"nodeType": "YulTypedName",
"src": "24973:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "24980:3:40",
"nodeType": "YulTypedName",
"src": "24980:3:40",
"type": ""
}
],
"src": "24920:118:40"
},
{
"body": {
"nativeSrc": "25142:124:40",
"nodeType": "YulBlock",
"src": "25142:124:40",
"statements": [
{
"nativeSrc": "25152:26:40",
"nodeType": "YulAssignment",
"src": "25152:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "25164:9:40",
"nodeType": "YulIdentifier",
"src": "25164:9:40"
},
{
"kind": "number",
"nativeSrc": "25175:2:40",
"nodeType": "YulLiteral",
"src": "25175:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25160:3:40",
"nodeType": "YulIdentifier",
"src": "25160:3:40"
},
"nativeSrc": "25160:18:40",
"nodeType": "YulFunctionCall",
"src": "25160:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "25152:4:40",
"nodeType": "YulIdentifier",
"src": "25152:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "25232:6:40",
"nodeType": "YulIdentifier",
"src": "25232:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "25245:9:40",
"nodeType": "YulIdentifier",
"src": "25245:9:40"
},
{
"kind": "number",
"nativeSrc": "25256:1:40",
"nodeType": "YulLiteral",
"src": "25256:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25241:3:40",
"nodeType": "YulIdentifier",
"src": "25241:3:40"
},
"nativeSrc": "25241:17:40",
"nodeType": "YulFunctionCall",
"src": "25241:17:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "25188:43:40",
"nodeType": "YulIdentifier",
"src": "25188:43:40"
},
"nativeSrc": "25188:71:40",
"nodeType": "YulFunctionCall",
"src": "25188:71:40"
},
"nativeSrc": "25188:71:40",
"nodeType": "YulExpressionStatement",
"src": "25188:71:40"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nativeSrc": "25044:222:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "25114:9:40",
"nodeType": "YulTypedName",
"src": "25114:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "25126:6:40",
"nodeType": "YulTypedName",
"src": "25126:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "25137:4:40",
"nodeType": "YulTypedName",
"src": "25137:4:40",
"type": ""
}
],
"src": "25044:222:40"
},
{
"body": {
"nativeSrc": "25389:696:40",
"nodeType": "YulBlock",
"src": "25389:696:40",
"statements": [
{
"body": {
"nativeSrc": "25435:83:40",
"nodeType": "YulBlock",
"src": "25435:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "25437:77:40",
"nodeType": "YulIdentifier",
"src": "25437:77:40"
},
"nativeSrc": "25437:79:40",
"nodeType": "YulFunctionCall",
"src": "25437:79:40"
},
"nativeSrc": "25437:79:40",
"nodeType": "YulExpressionStatement",
"src": "25437:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "25410:7:40",
"nodeType": "YulIdentifier",
"src": "25410:7:40"
},
{
"name": "headStart",
"nativeSrc": "25419:9:40",
"nodeType": "YulIdentifier",
"src": "25419:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "25406:3:40",
"nodeType": "YulIdentifier",
"src": "25406:3:40"
},
"nativeSrc": "25406:23:40",
"nodeType": "YulFunctionCall",
"src": "25406:23:40"
},
{
"kind": "number",
"nativeSrc": "25431:2:40",
"nodeType": "YulLiteral",
"src": "25431:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "25402:3:40",
"nodeType": "YulIdentifier",
"src": "25402:3:40"
},
"nativeSrc": "25402:32:40",
"nodeType": "YulFunctionCall",
"src": "25402:32:40"
},
"nativeSrc": "25399:119:40",
"nodeType": "YulIf",
"src": "25399:119:40"
},
{
"nativeSrc": "25528:116:40",
"nodeType": "YulBlock",
"src": "25528:116:40",
"statements": [
{
"nativeSrc": "25543:15:40",
"nodeType": "YulVariableDeclaration",
"src": "25543:15:40",
"value": {
"kind": "number",
"nativeSrc": "25557:1:40",
"nodeType": "YulLiteral",
"src": "25557:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "25547:6:40",
"nodeType": "YulTypedName",
"src": "25547:6:40",
"type": ""
}
]
},
{
"nativeSrc": "25572:62:40",
"nodeType": "YulAssignment",
"src": "25572:62:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "25606:9:40",
"nodeType": "YulIdentifier",
"src": "25606:9:40"
},
{
"name": "offset",
"nativeSrc": "25617:6:40",
"nodeType": "YulIdentifier",
"src": "25617:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25602:3:40",
"nodeType": "YulIdentifier",
"src": "25602:3:40"
},
"nativeSrc": "25602:22:40",
"nodeType": "YulFunctionCall",
"src": "25602:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "25626:7:40",
"nodeType": "YulIdentifier",
"src": "25626:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint32",
"nativeSrc": "25582:19:40",
"nodeType": "YulIdentifier",
"src": "25582:19:40"
},
"nativeSrc": "25582:52:40",
"nodeType": "YulFunctionCall",
"src": "25582:52:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "25572:6:40",
"nodeType": "YulIdentifier",
"src": "25572:6:40"
}
]
}
]
},
{
"nativeSrc": "25654:117:40",
"nodeType": "YulBlock",
"src": "25654:117:40",
"statements": [
{
"nativeSrc": "25669:16:40",
"nodeType": "YulVariableDeclaration",
"src": "25669:16:40",
"value": {
"kind": "number",
"nativeSrc": "25683:2:40",
"nodeType": "YulLiteral",
"src": "25683:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "25673:6:40",
"nodeType": "YulTypedName",
"src": "25673:6:40",
"type": ""
}
]
},
{
"nativeSrc": "25699:62:40",
"nodeType": "YulAssignment",
"src": "25699:62:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "25733:9:40",
"nodeType": "YulIdentifier",
"src": "25733:9:40"
},
{
"name": "offset",
"nativeSrc": "25744:6:40",
"nodeType": "YulIdentifier",
"src": "25744:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25729:3:40",
"nodeType": "YulIdentifier",
"src": "25729:3:40"
},
"nativeSrc": "25729:22:40",
"nodeType": "YulFunctionCall",
"src": "25729:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "25753:7:40",
"nodeType": "YulIdentifier",
"src": "25753:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint16",
"nativeSrc": "25709:19:40",
"nodeType": "YulIdentifier",
"src": "25709:19:40"
},
"nativeSrc": "25709:52:40",
"nodeType": "YulFunctionCall",
"src": "25709:52:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "25699:6:40",
"nodeType": "YulIdentifier",
"src": "25699:6:40"
}
]
}
]
},
{
"nativeSrc": "25781:297:40",
"nodeType": "YulBlock",
"src": "25781:297:40",
"statements": [
{
"nativeSrc": "25796:46:40",
"nodeType": "YulVariableDeclaration",
"src": "25796:46:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "25827:9:40",
"nodeType": "YulIdentifier",
"src": "25827:9:40"
},
{
"kind": "number",
"nativeSrc": "25838:2:40",
"nodeType": "YulLiteral",
"src": "25838:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25823:3:40",
"nodeType": "YulIdentifier",
"src": "25823:3:40"
},
"nativeSrc": "25823:18:40",
"nodeType": "YulFunctionCall",
"src": "25823:18:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "25810:12:40",
"nodeType": "YulIdentifier",
"src": "25810:12:40"
},
"nativeSrc": "25810:32:40",
"nodeType": "YulFunctionCall",
"src": "25810:32:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "25800:6:40",
"nodeType": "YulTypedName",
"src": "25800:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "25889:83:40",
"nodeType": "YulBlock",
"src": "25889:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "25891:77:40",
"nodeType": "YulIdentifier",
"src": "25891:77:40"
},
"nativeSrc": "25891:79:40",
"nodeType": "YulFunctionCall",
"src": "25891:79:40"
},
"nativeSrc": "25891:79:40",
"nodeType": "YulExpressionStatement",
"src": "25891:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "25861:6:40",
"nodeType": "YulIdentifier",
"src": "25861:6:40"
},
{
"kind": "number",
"nativeSrc": "25869:18:40",
"nodeType": "YulLiteral",
"src": "25869:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "25858:2:40",
"nodeType": "YulIdentifier",
"src": "25858:2:40"
},
"nativeSrc": "25858:30:40",
"nodeType": "YulFunctionCall",
"src": "25858:30:40"
},
"nativeSrc": "25855:117:40",
"nodeType": "YulIf",
"src": "25855:117:40"
},
{
"nativeSrc": "25986:82:40",
"nodeType": "YulAssignment",
"src": "25986:82:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "26040:9:40",
"nodeType": "YulIdentifier",
"src": "26040:9:40"
},
{
"name": "offset",
"nativeSrc": "26051:6:40",
"nodeType": "YulIdentifier",
"src": "26051:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "26036:3:40",
"nodeType": "YulIdentifier",
"src": "26036:3:40"
},
"nativeSrc": "26036:22:40",
"nodeType": "YulFunctionCall",
"src": "26036:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "26060:7:40",
"nodeType": "YulIdentifier",
"src": "26060:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes_calldata_ptr",
"nativeSrc": "26004:31:40",
"nodeType": "YulIdentifier",
"src": "26004:31:40"
},
"nativeSrc": "26004:64:40",
"nodeType": "YulFunctionCall",
"src": "26004:64:40"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "25986:6:40",
"nodeType": "YulIdentifier",
"src": "25986:6:40"
},
{
"name": "value3",
"nativeSrc": "25994:6:40",
"nodeType": "YulIdentifier",
"src": "25994:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr",
"nativeSrc": "25272:813:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "25335:9:40",
"nodeType": "YulTypedName",
"src": "25335:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "25346:7:40",
"nodeType": "YulTypedName",
"src": "25346:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "25358:6:40",
"nodeType": "YulTypedName",
"src": "25358:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "25366:6:40",
"nodeType": "YulTypedName",
"src": "25366:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "25374:6:40",
"nodeType": "YulTypedName",
"src": "25374:6:40",
"type": ""
},
{
"name": "value3",
"nativeSrc": "25382:6:40",
"nodeType": "YulTypedName",
"src": "25382:6:40",
"type": ""
}
],
"src": "25272:813:40"
},
{
"body": {
"nativeSrc": "26244:478:40",
"nodeType": "YulBlock",
"src": "26244:478:40",
"statements": [
{
"body": {
"nativeSrc": "26293:83:40",
"nodeType": "YulBlock",
"src": "26293:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "26295:77:40",
"nodeType": "YulIdentifier",
"src": "26295:77:40"
},
"nativeSrc": "26295:79:40",
"nodeType": "YulFunctionCall",
"src": "26295:79:40"
},
"nativeSrc": "26295:79:40",
"nodeType": "YulExpressionStatement",
"src": "26295:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "26272:6:40",
"nodeType": "YulIdentifier",
"src": "26272:6:40"
},
{
"kind": "number",
"nativeSrc": "26280:4:40",
"nodeType": "YulLiteral",
"src": "26280:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "26268:3:40",
"nodeType": "YulIdentifier",
"src": "26268:3:40"
},
"nativeSrc": "26268:17:40",
"nodeType": "YulFunctionCall",
"src": "26268:17:40"
},
{
"name": "end",
"nativeSrc": "26287:3:40",
"nodeType": "YulIdentifier",
"src": "26287:3:40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "26264:3:40",
"nodeType": "YulIdentifier",
"src": "26264:3:40"
},
"nativeSrc": "26264:27:40",
"nodeType": "YulFunctionCall",
"src": "26264:27:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "26257:6:40",
"nodeType": "YulIdentifier",
"src": "26257:6:40"
},
"nativeSrc": "26257:35:40",
"nodeType": "YulFunctionCall",
"src": "26257:35:40"
},
"nativeSrc": "26254:122:40",
"nodeType": "YulIf",
"src": "26254:122:40"
},
{
"nativeSrc": "26385:30:40",
"nodeType": "YulAssignment",
"src": "26385:30:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "26408:6:40",
"nodeType": "YulIdentifier",
"src": "26408:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "26395:12:40",
"nodeType": "YulIdentifier",
"src": "26395:12:40"
},
"nativeSrc": "26395:20:40",
"nodeType": "YulFunctionCall",
"src": "26395:20:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "26385:6:40",
"nodeType": "YulIdentifier",
"src": "26385:6:40"
}
]
},
{
"body": {
"nativeSrc": "26458:83:40",
"nodeType": "YulBlock",
"src": "26458:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
"nativeSrc": "26460:77:40",
"nodeType": "YulIdentifier",
"src": "26460:77:40"
},
"nativeSrc": "26460:79:40",
"nodeType": "YulFunctionCall",
"src": "26460:79:40"
},
"nativeSrc": "26460:79:40",
"nodeType": "YulExpressionStatement",
"src": "26460:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "26430:6:40",
"nodeType": "YulIdentifier",
"src": "26430:6:40"
},
{
"kind": "number",
"nativeSrc": "26438:18:40",
"nodeType": "YulLiteral",
"src": "26438:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "26427:2:40",
"nodeType": "YulIdentifier",
"src": "26427:2:40"
},
"nativeSrc": "26427:30:40",
"nodeType": "YulFunctionCall",
"src": "26427:30:40"
},
"nativeSrc": "26424:117:40",
"nodeType": "YulIf",
"src": "26424:117:40"
},
{
"nativeSrc": "26550:29:40",
"nodeType": "YulAssignment",
"src": "26550:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "26566:6:40",
"nodeType": "YulIdentifier",
"src": "26566:6:40"
},
{
"kind": "number",
"nativeSrc": "26574:4:40",
"nodeType": "YulLiteral",
"src": "26574:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "26562:3:40",
"nodeType": "YulIdentifier",
"src": "26562:3:40"
},
"nativeSrc": "26562:17:40",
"nodeType": "YulFunctionCall",
"src": "26562:17:40"
},
"variableNames": [
{
"name": "arrayPos",
"nativeSrc": "26550:8:40",
"nodeType": "YulIdentifier",
"src": "26550:8:40"
}
]
},
{
"body": {
"nativeSrc": "26633:83:40",
"nodeType": "YulBlock",
"src": "26633:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nativeSrc": "26635:77:40",
"nodeType": "YulIdentifier",
"src": "26635:77:40"
},
"nativeSrc": "26635:79:40",
"nodeType": "YulFunctionCall",
"src": "26635:79:40"
},
"nativeSrc": "26635:79:40",
"nodeType": "YulExpressionStatement",
"src": "26635:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "arrayPos",
"nativeSrc": "26598:8:40",
"nodeType": "YulIdentifier",
"src": "26598:8:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "26612:6:40",
"nodeType": "YulIdentifier",
"src": "26612:6:40"
},
{
"kind": "number",
"nativeSrc": "26620:4:40",
"nodeType": "YulLiteral",
"src": "26620:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "26608:3:40",
"nodeType": "YulIdentifier",
"src": "26608:3:40"
},
"nativeSrc": "26608:17:40",
"nodeType": "YulFunctionCall",
"src": "26608:17:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "26594:3:40",
"nodeType": "YulIdentifier",
"src": "26594:3:40"
},
"nativeSrc": "26594:32:40",
"nodeType": "YulFunctionCall",
"src": "26594:32:40"
},
{
"name": "end",
"nativeSrc": "26628:3:40",
"nodeType": "YulIdentifier",
"src": "26628:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "26591:2:40",
"nodeType": "YulIdentifier",
"src": "26591:2:40"
},
"nativeSrc": "26591:41:40",
"nodeType": "YulFunctionCall",
"src": "26591:41:40"
},
"nativeSrc": "26588:128:40",
"nodeType": "YulIf",
"src": "26588:128:40"
}
]
},
"name": "abi_decode_t_array$_t_struct$_InboundPacket_$2486_calldata_ptr_$dyn_calldata_ptr",
"nativeSrc": "26121:601:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "26211:6:40",
"nodeType": "YulTypedName",
"src": "26211:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "26219:3:40",
"nodeType": "YulTypedName",
"src": "26219:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "arrayPos",
"nativeSrc": "26227:8:40",
"nodeType": "YulTypedName",
"src": "26227:8:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "26237:6:40",
"nodeType": "YulTypedName",
"src": "26237:6:40",
"type": ""
}
],
"src": "26121:601:40"
},
{
"body": {
"nativeSrc": "26862:491:40",
"nodeType": "YulBlock",
"src": "26862:491:40",
"statements": [
{
"body": {
"nativeSrc": "26908:83:40",
"nodeType": "YulBlock",
"src": "26908:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "26910:77:40",
"nodeType": "YulIdentifier",
"src": "26910:77:40"
},
"nativeSrc": "26910:79:40",
"nodeType": "YulFunctionCall",
"src": "26910:79:40"
},
"nativeSrc": "26910:79:40",
"nodeType": "YulExpressionStatement",
"src": "26910:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "26883:7:40",
"nodeType": "YulIdentifier",
"src": "26883:7:40"
},
{
"name": "headStart",
"nativeSrc": "26892:9:40",
"nodeType": "YulIdentifier",
"src": "26892:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "26879:3:40",
"nodeType": "YulIdentifier",
"src": "26879:3:40"
},
"nativeSrc": "26879:23:40",
"nodeType": "YulFunctionCall",
"src": "26879:23:40"
},
{
"kind": "number",
"nativeSrc": "26904:2:40",
"nodeType": "YulLiteral",
"src": "26904:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "26875:3:40",
"nodeType": "YulIdentifier",
"src": "26875:3:40"
},
"nativeSrc": "26875:32:40",
"nodeType": "YulFunctionCall",
"src": "26875:32:40"
},
"nativeSrc": "26872:119:40",
"nodeType": "YulIf",
"src": "26872:119:40"
},
{
"nativeSrc": "27001:345:40",
"nodeType": "YulBlock",
"src": "27001:345:40",
"statements": [
{
"nativeSrc": "27016:45:40",
"nodeType": "YulVariableDeclaration",
"src": "27016:45:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "27047:9:40",
"nodeType": "YulIdentifier",
"src": "27047:9:40"
},
{
"kind": "number",
"nativeSrc": "27058:1:40",
"nodeType": "YulLiteral",
"src": "27058:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "27043:3:40",
"nodeType": "YulIdentifier",
"src": "27043:3:40"
},
"nativeSrc": "27043:17:40",
"nodeType": "YulFunctionCall",
"src": "27043:17:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "27030:12:40",
"nodeType": "YulIdentifier",
"src": "27030:12:40"
},
"nativeSrc": "27030:31:40",
"nodeType": "YulFunctionCall",
"src": "27030:31:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "27020:6:40",
"nodeType": "YulTypedName",
"src": "27020:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "27108:83:40",
"nodeType": "YulBlock",
"src": "27108:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "27110:77:40",
"nodeType": "YulIdentifier",
"src": "27110:77:40"
},
"nativeSrc": "27110:79:40",
"nodeType": "YulFunctionCall",
"src": "27110:79:40"
},
"nativeSrc": "27110:79:40",
"nodeType": "YulExpressionStatement",
"src": "27110:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "27080:6:40",
"nodeType": "YulIdentifier",
"src": "27080:6:40"
},
{
"kind": "number",
"nativeSrc": "27088:18:40",
"nodeType": "YulLiteral",
"src": "27088:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "27077:2:40",
"nodeType": "YulIdentifier",
"src": "27077:2:40"
},
"nativeSrc": "27077:30:40",
"nodeType": "YulFunctionCall",
"src": "27077:30:40"
},
"nativeSrc": "27074:117:40",
"nodeType": "YulIf",
"src": "27074:117:40"
},
{
"nativeSrc": "27205:131:40",
"nodeType": "YulAssignment",
"src": "27205:131:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "27308:9:40",
"nodeType": "YulIdentifier",
"src": "27308:9:40"
},
{
"name": "offset",
"nativeSrc": "27319:6:40",
"nodeType": "YulIdentifier",
"src": "27319:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "27304:3:40",
"nodeType": "YulIdentifier",
"src": "27304:3:40"
},
"nativeSrc": "27304:22:40",
"nodeType": "YulFunctionCall",
"src": "27304:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "27328:7:40",
"nodeType": "YulIdentifier",
"src": "27328:7:40"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_struct$_InboundPacket_$2486_calldata_ptr_$dyn_calldata_ptr",
"nativeSrc": "27223:80:40",
"nodeType": "YulIdentifier",
"src": "27223:80:40"
},
"nativeSrc": "27223:113:40",
"nodeType": "YulFunctionCall",
"src": "27223:113:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "27205:6:40",
"nodeType": "YulIdentifier",
"src": "27205:6:40"
},
{
"name": "value1",
"nativeSrc": "27213:6:40",
"nodeType": "YulIdentifier",
"src": "27213:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2486_calldata_ptr_$dyn_calldata_ptr",
"nativeSrc": "26728:625:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "26824:9:40",
"nodeType": "YulTypedName",
"src": "26824:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "26835:7:40",
"nodeType": "YulTypedName",
"src": "26835:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "26847:6:40",
"nodeType": "YulTypedName",
"src": "26847:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "26855:6:40",
"nodeType": "YulTypedName",
"src": "26855:6:40",
"type": ""
}
],
"src": "26728:625:40"
},
{
"body": {
"nativeSrc": "27468:152:40",
"nodeType": "YulBlock",
"src": "27468:152:40",
"statements": [
{
"body": {
"nativeSrc": "27507:83:40",
"nodeType": "YulBlock",
"src": "27507:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d",
"nativeSrc": "27509:77:40",
"nodeType": "YulIdentifier",
"src": "27509:77:40"
},
"nativeSrc": "27509:79:40",
"nodeType": "YulFunctionCall",
"src": "27509:79:40"
},
"nativeSrc": "27509:79:40",
"nodeType": "YulExpressionStatement",
"src": "27509:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nativeSrc": "27489:3:40",
"nodeType": "YulIdentifier",
"src": "27489:3:40"
},
{
"name": "offset",
"nativeSrc": "27494:6:40",
"nodeType": "YulIdentifier",
"src": "27494:6:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "27485:3:40",
"nodeType": "YulIdentifier",
"src": "27485:3:40"
},
"nativeSrc": "27485:16:40",
"nodeType": "YulFunctionCall",
"src": "27485:16:40"
},
{
"kind": "number",
"nativeSrc": "27503:2:40",
"nodeType": "YulLiteral",
"src": "27503:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "27481:3:40",
"nodeType": "YulIdentifier",
"src": "27481:3:40"
},
"nativeSrc": "27481:25:40",
"nodeType": "YulFunctionCall",
"src": "27481:25:40"
},
"nativeSrc": "27478:112:40",
"nodeType": "YulIf",
"src": "27478:112:40"
},
{
"nativeSrc": "27599:15:40",
"nodeType": "YulAssignment",
"src": "27599:15:40",
"value": {
"name": "offset",
"nativeSrc": "27608:6:40",
"nodeType": "YulIdentifier",
"src": "27608:6:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "27599:5:40",
"nodeType": "YulIdentifier",
"src": "27599:5:40"
}
]
}
]
},
"name": "abi_decode_t_struct$_MessagingFee_$33_calldata_ptr",
"nativeSrc": "27386:234:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "27446:6:40",
"nodeType": "YulTypedName",
"src": "27446:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "27454:3:40",
"nodeType": "YulTypedName",
"src": "27454:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "27462:5:40",
"nodeType": "YulTypedName",
"src": "27462:5:40",
"type": ""
}
],
"src": "27386:234:40"
},
{
"body": {
"nativeSrc": "27785:739:40",
"nodeType": "YulBlock",
"src": "27785:739:40",
"statements": [
{
"body": {
"nativeSrc": "27832:83:40",
"nodeType": "YulBlock",
"src": "27832:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "27834:77:40",
"nodeType": "YulIdentifier",
"src": "27834:77:40"
},
"nativeSrc": "27834:79:40",
"nodeType": "YulFunctionCall",
"src": "27834:79:40"
},
"nativeSrc": "27834:79:40",
"nodeType": "YulExpressionStatement",
"src": "27834:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "27806:7:40",
"nodeType": "YulIdentifier",
"src": "27806:7:40"
},
{
"name": "headStart",
"nativeSrc": "27815:9:40",
"nodeType": "YulIdentifier",
"src": "27815:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "27802:3:40",
"nodeType": "YulIdentifier",
"src": "27802:3:40"
},
"nativeSrc": "27802:23:40",
"nodeType": "YulFunctionCall",
"src": "27802:23:40"
},
{
"kind": "number",
"nativeSrc": "27827:3:40",
"nodeType": "YulLiteral",
"src": "27827:3:40",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "27798:3:40",
"nodeType": "YulIdentifier",
"src": "27798:3:40"
},
"nativeSrc": "27798:33:40",
"nodeType": "YulFunctionCall",
"src": "27798:33:40"
},
"nativeSrc": "27795:120:40",
"nodeType": "YulIf",
"src": "27795:120:40"
},
{
"nativeSrc": "27925:306:40",
"nodeType": "YulBlock",
"src": "27925:306:40",
"statements": [
{
"nativeSrc": "27940:45:40",
"nodeType": "YulVariableDeclaration",
"src": "27940:45:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "27971:9:40",
"nodeType": "YulIdentifier",
"src": "27971:9:40"
},
{
"kind": "number",
"nativeSrc": "27982:1:40",
"nodeType": "YulLiteral",
"src": "27982:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "27967:3:40",
"nodeType": "YulIdentifier",
"src": "27967:3:40"
},
"nativeSrc": "27967:17:40",
"nodeType": "YulFunctionCall",
"src": "27967:17:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "27954:12:40",
"nodeType": "YulIdentifier",
"src": "27954:12:40"
},
"nativeSrc": "27954:31:40",
"nodeType": "YulFunctionCall",
"src": "27954:31:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "27944:6:40",
"nodeType": "YulTypedName",
"src": "27944:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "28032:83:40",
"nodeType": "YulBlock",
"src": "28032:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "28034:77:40",
"nodeType": "YulIdentifier",
"src": "28034:77:40"
},
"nativeSrc": "28034:79:40",
"nodeType": "YulFunctionCall",
"src": "28034:79:40"
},
"nativeSrc": "28034:79:40",
"nodeType": "YulExpressionStatement",
"src": "28034:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "28004:6:40",
"nodeType": "YulIdentifier",
"src": "28004:6:40"
},
{
"kind": "number",
"nativeSrc": "28012:18:40",
"nodeType": "YulLiteral",
"src": "28012:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "28001:2:40",
"nodeType": "YulIdentifier",
"src": "28001:2:40"
},
"nativeSrc": "28001:30:40",
"nodeType": "YulFunctionCall",
"src": "28001:30:40"
},
"nativeSrc": "27998:117:40",
"nodeType": "YulIf",
"src": "27998:117:40"
},
{
"nativeSrc": "28129:92:40",
"nodeType": "YulAssignment",
"src": "28129:92:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "28193:9:40",
"nodeType": "YulIdentifier",
"src": "28193:9:40"
},
{
"name": "offset",
"nativeSrc": "28204:6:40",
"nodeType": "YulIdentifier",
"src": "28204:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28189:3:40",
"nodeType": "YulIdentifier",
"src": "28189:3:40"
},
"nativeSrc": "28189:22:40",
"nodeType": "YulFunctionCall",
"src": "28189:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "28213:7:40",
"nodeType": "YulIdentifier",
"src": "28213:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_SendParam_$3386_calldata_ptr",
"nativeSrc": "28139:49:40",
"nodeType": "YulIdentifier",
"src": "28139:49:40"
},
"nativeSrc": "28139:82:40",
"nodeType": "YulFunctionCall",
"src": "28139:82:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "28129:6:40",
"nodeType": "YulIdentifier",
"src": "28129:6:40"
}
]
}
]
},
{
"nativeSrc": "28241:148:40",
"nodeType": "YulBlock",
"src": "28241:148:40",
"statements": [
{
"nativeSrc": "28256:16:40",
"nodeType": "YulVariableDeclaration",
"src": "28256:16:40",
"value": {
"kind": "number",
"nativeSrc": "28270:2:40",
"nodeType": "YulLiteral",
"src": "28270:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "28260:6:40",
"nodeType": "YulTypedName",
"src": "28260:6:40",
"type": ""
}
]
},
{
"nativeSrc": "28286:93:40",
"nodeType": "YulAssignment",
"src": "28286:93:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "28351:9:40",
"nodeType": "YulIdentifier",
"src": "28351:9:40"
},
{
"name": "offset",
"nativeSrc": "28362:6:40",
"nodeType": "YulIdentifier",
"src": "28362:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28347:3:40",
"nodeType": "YulIdentifier",
"src": "28347:3:40"
},
"nativeSrc": "28347:22:40",
"nodeType": "YulFunctionCall",
"src": "28347:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "28371:7:40",
"nodeType": "YulIdentifier",
"src": "28371:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_MessagingFee_$33_calldata_ptr",
"nativeSrc": "28296:50:40",
"nodeType": "YulIdentifier",
"src": "28296:50:40"
},
"nativeSrc": "28296:83:40",
"nodeType": "YulFunctionCall",
"src": "28296:83:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "28286:6:40",
"nodeType": "YulIdentifier",
"src": "28286:6:40"
}
]
}
]
},
{
"nativeSrc": "28399:118:40",
"nodeType": "YulBlock",
"src": "28399:118:40",
"statements": [
{
"nativeSrc": "28414:16:40",
"nodeType": "YulVariableDeclaration",
"src": "28414:16:40",
"value": {
"kind": "number",
"nativeSrc": "28428:2:40",
"nodeType": "YulLiteral",
"src": "28428:2:40",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nativeSrc": "28418:6:40",
"nodeType": "YulTypedName",
"src": "28418:6:40",
"type": ""
}
]
},
{
"nativeSrc": "28444:63:40",
"nodeType": "YulAssignment",
"src": "28444:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "28479:9:40",
"nodeType": "YulIdentifier",
"src": "28479:9:40"
},
{
"name": "offset",
"nativeSrc": "28490:6:40",
"nodeType": "YulIdentifier",
"src": "28490:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28475:3:40",
"nodeType": "YulIdentifier",
"src": "28475:3:40"
},
"nativeSrc": "28475:22:40",
"nodeType": "YulFunctionCall",
"src": "28475:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "28499:7:40",
"nodeType": "YulIdentifier",
"src": "28499:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "28454:20:40",
"nodeType": "YulIdentifier",
"src": "28454:20:40"
},
"nativeSrc": "28454:53:40",
"nodeType": "YulFunctionCall",
"src": "28454:53:40"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "28444:6:40",
"nodeType": "YulIdentifier",
"src": "28444:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptrt_struct$_MessagingFee_$33_calldata_ptrt_address",
"nativeSrc": "27626:898:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "27739:9:40",
"nodeType": "YulTypedName",
"src": "27739:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "27750:7:40",
"nodeType": "YulTypedName",
"src": "27750:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "27762:6:40",
"nodeType": "YulTypedName",
"src": "27762:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "27770:6:40",
"nodeType": "YulTypedName",
"src": "27770:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "27778:6:40",
"nodeType": "YulTypedName",
"src": "27778:6:40",
"type": ""
}
],
"src": "27626:898:40"
},
{
"body": {
"nativeSrc": "28585:53:40",
"nodeType": "YulBlock",
"src": "28585:53:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "28602:3:40",
"nodeType": "YulIdentifier",
"src": "28602:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "28625:5:40",
"nodeType": "YulIdentifier",
"src": "28625:5:40"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "28607:17:40",
"nodeType": "YulIdentifier",
"src": "28607:17:40"
},
"nativeSrc": "28607:24:40",
"nodeType": "YulFunctionCall",
"src": "28607:24:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "28595:6:40",
"nodeType": "YulIdentifier",
"src": "28595:6:40"
},
"nativeSrc": "28595:37:40",
"nodeType": "YulFunctionCall",
"src": "28595:37:40"
},
"nativeSrc": "28595:37:40",
"nodeType": "YulExpressionStatement",
"src": "28595:37:40"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32",
"nativeSrc": "28530:108:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "28573:5:40",
"nodeType": "YulTypedName",
"src": "28573:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "28580:3:40",
"nodeType": "YulTypedName",
"src": "28580:3:40",
"type": ""
}
],
"src": "28530:108:40"
},
{
"body": {
"nativeSrc": "28697:52:40",
"nodeType": "YulBlock",
"src": "28697:52:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "28714:3:40",
"nodeType": "YulIdentifier",
"src": "28714:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "28736:5:40",
"nodeType": "YulIdentifier",
"src": "28736:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint64",
"nativeSrc": "28719:16:40",
"nodeType": "YulIdentifier",
"src": "28719:16:40"
},
"nativeSrc": "28719:23:40",
"nodeType": "YulFunctionCall",
"src": "28719:23:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "28707:6:40",
"nodeType": "YulIdentifier",
"src": "28707:6:40"
},
"nativeSrc": "28707:36:40",
"nodeType": "YulFunctionCall",
"src": "28707:36:40"
},
"nativeSrc": "28707:36:40",
"nodeType": "YulExpressionStatement",
"src": "28707:36:40"
}
]
},
"name": "abi_encode_t_uint64_to_t_uint64",
"nativeSrc": "28644:105:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "28685:5:40",
"nodeType": "YulTypedName",
"src": "28685:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "28692:3:40",
"nodeType": "YulTypedName",
"src": "28692:3:40",
"type": ""
}
],
"src": "28644:105:40"
},
{
"body": {
"nativeSrc": "28917:402:40",
"nodeType": "YulBlock",
"src": "28917:402:40",
"statements": [
{
"nativeSrc": "28927:26:40",
"nodeType": "YulVariableDeclaration",
"src": "28927:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "28943:3:40",
"nodeType": "YulIdentifier",
"src": "28943:3:40"
},
{
"kind": "number",
"nativeSrc": "28948:4:40",
"nodeType": "YulLiteral",
"src": "28948:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28939:3:40",
"nodeType": "YulIdentifier",
"src": "28939:3:40"
},
"nativeSrc": "28939:14:40",
"nodeType": "YulFunctionCall",
"src": "28939:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "28931:4:40",
"nodeType": "YulTypedName",
"src": "28931:4:40",
"type": ""
}
]
},
{
"nativeSrc": "28963:169:40",
"nodeType": "YulBlock",
"src": "28963:169:40",
"statements": [
{
"nativeSrc": "29003:43:40",
"nodeType": "YulVariableDeclaration",
"src": "29003:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "29033:5:40",
"nodeType": "YulIdentifier",
"src": "29033:5:40"
},
{
"kind": "number",
"nativeSrc": "29040:4:40",
"nodeType": "YulLiteral",
"src": "29040:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29029:3:40",
"nodeType": "YulIdentifier",
"src": "29029:3:40"
},
"nativeSrc": "29029:16:40",
"nodeType": "YulFunctionCall",
"src": "29029:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "29023:5:40",
"nodeType": "YulIdentifier",
"src": "29023:5:40"
},
"nativeSrc": "29023:23:40",
"nodeType": "YulFunctionCall",
"src": "29023:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "29007:12:40",
"nodeType": "YulTypedName",
"src": "29007:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "29093:12:40",
"nodeType": "YulIdentifier",
"src": "29093:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "29111:3:40",
"nodeType": "YulIdentifier",
"src": "29111:3:40"
},
{
"kind": "number",
"nativeSrc": "29116:4:40",
"nodeType": "YulLiteral",
"src": "29116:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29107:3:40",
"nodeType": "YulIdentifier",
"src": "29107:3:40"
},
"nativeSrc": "29107:14:40",
"nodeType": "YulFunctionCall",
"src": "29107:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "29059:33:40",
"nodeType": "YulIdentifier",
"src": "29059:33:40"
},
"nativeSrc": "29059:63:40",
"nodeType": "YulFunctionCall",
"src": "29059:63:40"
},
"nativeSrc": "29059:63:40",
"nodeType": "YulExpressionStatement",
"src": "29059:63:40"
}
]
},
{
"nativeSrc": "29142:170:40",
"nodeType": "YulBlock",
"src": "29142:170:40",
"statements": [
{
"nativeSrc": "29183:43:40",
"nodeType": "YulVariableDeclaration",
"src": "29183:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "29213:5:40",
"nodeType": "YulIdentifier",
"src": "29213:5:40"
},
{
"kind": "number",
"nativeSrc": "29220:4:40",
"nodeType": "YulLiteral",
"src": "29220:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29209:3:40",
"nodeType": "YulIdentifier",
"src": "29209:3:40"
},
"nativeSrc": "29209:16:40",
"nodeType": "YulFunctionCall",
"src": "29209:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "29203:5:40",
"nodeType": "YulIdentifier",
"src": "29203:5:40"
},
"nativeSrc": "29203:23:40",
"nodeType": "YulFunctionCall",
"src": "29203:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "29187:12:40",
"nodeType": "YulTypedName",
"src": "29187:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "29273:12:40",
"nodeType": "YulIdentifier",
"src": "29273:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "29291:3:40",
"nodeType": "YulIdentifier",
"src": "29291:3:40"
},
{
"kind": "number",
"nativeSrc": "29296:4:40",
"nodeType": "YulLiteral",
"src": "29296:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29287:3:40",
"nodeType": "YulIdentifier",
"src": "29287:3:40"
},
"nativeSrc": "29287:14:40",
"nodeType": "YulFunctionCall",
"src": "29287:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nativeSrc": "29239:33:40",
"nodeType": "YulIdentifier",
"src": "29239:33:40"
},
"nativeSrc": "29239:63:40",
"nodeType": "YulFunctionCall",
"src": "29239:63:40"
},
"nativeSrc": "29239:63:40",
"nodeType": "YulExpressionStatement",
"src": "29239:63:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr",
"nativeSrc": "28805:514:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "28904:5:40",
"nodeType": "YulTypedName",
"src": "28904:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "28911:3:40",
"nodeType": "YulTypedName",
"src": "28911:3:40",
"type": ""
}
],
"src": "28805:514:40"
},
{
"body": {
"nativeSrc": "29513:619:40",
"nodeType": "YulBlock",
"src": "29513:619:40",
"statements": [
{
"nativeSrc": "29523:26:40",
"nodeType": "YulVariableDeclaration",
"src": "29523:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "29539:3:40",
"nodeType": "YulIdentifier",
"src": "29539:3:40"
},
{
"kind": "number",
"nativeSrc": "29544:4:40",
"nodeType": "YulLiteral",
"src": "29544:4:40",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29535:3:40",
"nodeType": "YulIdentifier",
"src": "29535:3:40"
},
"nativeSrc": "29535:14:40",
"nodeType": "YulFunctionCall",
"src": "29535:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "29527:4:40",
"nodeType": "YulTypedName",
"src": "29527:4:40",
"type": ""
}
]
},
{
"nativeSrc": "29559:164:40",
"nodeType": "YulBlock",
"src": "29559:164:40",
"statements": [
{
"nativeSrc": "29594:43:40",
"nodeType": "YulVariableDeclaration",
"src": "29594:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "29624:5:40",
"nodeType": "YulIdentifier",
"src": "29624:5:40"
},
{
"kind": "number",
"nativeSrc": "29631:4:40",
"nodeType": "YulLiteral",
"src": "29631:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29620:3:40",
"nodeType": "YulIdentifier",
"src": "29620:3:40"
},
"nativeSrc": "29620:16:40",
"nodeType": "YulFunctionCall",
"src": "29620:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "29614:5:40",
"nodeType": "YulIdentifier",
"src": "29614:5:40"
},
"nativeSrc": "29614:23:40",
"nodeType": "YulFunctionCall",
"src": "29614:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "29598:12:40",
"nodeType": "YulTypedName",
"src": "29598:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "29684:12:40",
"nodeType": "YulIdentifier",
"src": "29684:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "29702:3:40",
"nodeType": "YulIdentifier",
"src": "29702:3:40"
},
{
"kind": "number",
"nativeSrc": "29707:4:40",
"nodeType": "YulLiteral",
"src": "29707:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29698:3:40",
"nodeType": "YulIdentifier",
"src": "29698:3:40"
},
"nativeSrc": "29698:14:40",
"nodeType": "YulFunctionCall",
"src": "29698:14:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32",
"nativeSrc": "29650:33:40",
"nodeType": "YulIdentifier",
"src": "29650:33:40"
},
"nativeSrc": "29650:63:40",
"nodeType": "YulFunctionCall",
"src": "29650:63:40"
},
"nativeSrc": "29650:63:40",
"nodeType": "YulExpressionStatement",
"src": "29650:63:40"
}
]
},
{
"nativeSrc": "29733:163:40",
"nodeType": "YulBlock",
"src": "29733:163:40",
"statements": [
{
"nativeSrc": "29769:43:40",
"nodeType": "YulVariableDeclaration",
"src": "29769:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "29799:5:40",
"nodeType": "YulIdentifier",
"src": "29799:5:40"
},
{
"kind": "number",
"nativeSrc": "29806:4:40",
"nodeType": "YulLiteral",
"src": "29806:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29795:3:40",
"nodeType": "YulIdentifier",
"src": "29795:3:40"
},
"nativeSrc": "29795:16:40",
"nodeType": "YulFunctionCall",
"src": "29795:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "29789:5:40",
"nodeType": "YulIdentifier",
"src": "29789:5:40"
},
"nativeSrc": "29789:23:40",
"nodeType": "YulFunctionCall",
"src": "29789:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "29773:12:40",
"nodeType": "YulTypedName",
"src": "29773:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "29857:12:40",
"nodeType": "YulIdentifier",
"src": "29857:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "29875:3:40",
"nodeType": "YulIdentifier",
"src": "29875:3:40"
},
{
"kind": "number",
"nativeSrc": "29880:4:40",
"nodeType": "YulLiteral",
"src": "29880:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29871:3:40",
"nodeType": "YulIdentifier",
"src": "29871:3:40"
},
"nativeSrc": "29871:14:40",
"nodeType": "YulFunctionCall",
"src": "29871:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64",
"nativeSrc": "29825:31:40",
"nodeType": "YulIdentifier",
"src": "29825:31:40"
},
"nativeSrc": "29825:61:40",
"nodeType": "YulFunctionCall",
"src": "29825:61:40"
},
"nativeSrc": "29825:61:40",
"nodeType": "YulExpressionStatement",
"src": "29825:61:40"
}
]
},
{
"nativeSrc": "29906:219:40",
"nodeType": "YulBlock",
"src": "29906:219:40",
"statements": [
{
"nativeSrc": "29940:43:40",
"nodeType": "YulVariableDeclaration",
"src": "29940:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "29970:5:40",
"nodeType": "YulIdentifier",
"src": "29970:5:40"
},
{
"kind": "number",
"nativeSrc": "29977:4:40",
"nodeType": "YulLiteral",
"src": "29977:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29966:3:40",
"nodeType": "YulIdentifier",
"src": "29966:3:40"
},
"nativeSrc": "29966:16:40",
"nodeType": "YulFunctionCall",
"src": "29966:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "29960:5:40",
"nodeType": "YulIdentifier",
"src": "29960:5:40"
},
"nativeSrc": "29960:23:40",
"nodeType": "YulFunctionCall",
"src": "29960:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "29944:12:40",
"nodeType": "YulTypedName",
"src": "29944:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "30086:12:40",
"nodeType": "YulIdentifier",
"src": "30086:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "30104:3:40",
"nodeType": "YulIdentifier",
"src": "30104:3:40"
},
{
"kind": "number",
"nativeSrc": "30109:4:40",
"nodeType": "YulLiteral",
"src": "30109:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30100:3:40",
"nodeType": "YulIdentifier",
"src": "30100:3:40"
},
"nativeSrc": "30100:14:40",
"nodeType": "YulFunctionCall",
"src": "30100:14:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr",
"nativeSrc": "29996:89:40",
"nodeType": "YulIdentifier",
"src": "29996:89:40"
},
"nativeSrc": "29996:119:40",
"nodeType": "YulFunctionCall",
"src": "29996:119:40"
},
"nativeSrc": "29996:119:40",
"nodeType": "YulExpressionStatement",
"src": "29996:119:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_MessagingReceipt_$28_memory_ptr_to_t_struct$_MessagingReceipt_$28_memory_ptr_fromStack",
"nativeSrc": "29383:749:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "29500:5:40",
"nodeType": "YulTypedName",
"src": "29500:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "29507:3:40",
"nodeType": "YulTypedName",
"src": "29507:3:40",
"type": ""
}
],
"src": "29383:749:40"
},
{
"body": {
"nativeSrc": "30384:328:40",
"nodeType": "YulBlock",
"src": "30384:328:40",
"statements": [
{
"nativeSrc": "30394:27:40",
"nodeType": "YulAssignment",
"src": "30394:27:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "30406:9:40",
"nodeType": "YulIdentifier",
"src": "30406:9:40"
},
{
"kind": "number",
"nativeSrc": "30417:3:40",
"nodeType": "YulLiteral",
"src": "30417:3:40",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30402:3:40",
"nodeType": "YulIdentifier",
"src": "30402:3:40"
},
"nativeSrc": "30402:19:40",
"nodeType": "YulFunctionCall",
"src": "30402:19:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "30394:4:40",
"nodeType": "YulIdentifier",
"src": "30394:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "30539:6:40",
"nodeType": "YulIdentifier",
"src": "30539:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "30552:9:40",
"nodeType": "YulIdentifier",
"src": "30552:9:40"
},
{
"kind": "number",
"nativeSrc": "30563:1:40",
"nodeType": "YulLiteral",
"src": "30563:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30548:3:40",
"nodeType": "YulIdentifier",
"src": "30548:3:40"
},
"nativeSrc": "30548:17:40",
"nodeType": "YulFunctionCall",
"src": "30548:17:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_MessagingReceipt_$28_memory_ptr_to_t_struct$_MessagingReceipt_$28_memory_ptr_fromStack",
"nativeSrc": "30431:107:40",
"nodeType": "YulIdentifier",
"src": "30431:107:40"
},
"nativeSrc": "30431:135:40",
"nodeType": "YulFunctionCall",
"src": "30431:135:40"
},
"nativeSrc": "30431:135:40",
"nodeType": "YulExpressionStatement",
"src": "30431:135:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "30676:6:40",
"nodeType": "YulIdentifier",
"src": "30676:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "30689:9:40",
"nodeType": "YulIdentifier",
"src": "30689:9:40"
},
{
"kind": "number",
"nativeSrc": "30700:3:40",
"nodeType": "YulLiteral",
"src": "30700:3:40",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30685:3:40",
"nodeType": "YulIdentifier",
"src": "30685:3:40"
},
"nativeSrc": "30685:19:40",
"nodeType": "YulFunctionCall",
"src": "30685:19:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_OFTReceipt_$3398_memory_ptr_to_t_struct$_OFTReceipt_$3398_memory_ptr_fromStack",
"nativeSrc": "30576:99:40",
"nodeType": "YulIdentifier",
"src": "30576:99:40"
},
"nativeSrc": "30576:129:40",
"nodeType": "YulFunctionCall",
"src": "30576:129:40"
},
"nativeSrc": "30576:129:40",
"nodeType": "YulExpressionStatement",
"src": "30576:129:40"
}
]
},
"name": "abi_encode_tuple_t_struct$_MessagingReceipt_$28_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__to_t_struct$_MessagingReceipt_$28_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__fromStack_reversed",
"nativeSrc": "30138:574:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "30348:9:40",
"nodeType": "YulTypedName",
"src": "30348:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "30360:6:40",
"nodeType": "YulTypedName",
"src": "30360:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "30368:6:40",
"nodeType": "YulTypedName",
"src": "30368:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "30379:4:40",
"nodeType": "YulTypedName",
"src": "30379:4:40",
"type": ""
}
],
"src": "30138:574:40"
},
{
"body": {
"nativeSrc": "30801:391:40",
"nodeType": "YulBlock",
"src": "30801:391:40",
"statements": [
{
"body": {
"nativeSrc": "30847:83:40",
"nodeType": "YulBlock",
"src": "30847:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "30849:77:40",
"nodeType": "YulIdentifier",
"src": "30849:77:40"
},
"nativeSrc": "30849:79:40",
"nodeType": "YulFunctionCall",
"src": "30849:79:40"
},
"nativeSrc": "30849:79:40",
"nodeType": "YulExpressionStatement",
"src": "30849:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "30822:7:40",
"nodeType": "YulIdentifier",
"src": "30822:7:40"
},
{
"name": "headStart",
"nativeSrc": "30831:9:40",
"nodeType": "YulIdentifier",
"src": "30831:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "30818:3:40",
"nodeType": "YulIdentifier",
"src": "30818:3:40"
},
"nativeSrc": "30818:23:40",
"nodeType": "YulFunctionCall",
"src": "30818:23:40"
},
{
"kind": "number",
"nativeSrc": "30843:2:40",
"nodeType": "YulLiteral",
"src": "30843:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "30814:3:40",
"nodeType": "YulIdentifier",
"src": "30814:3:40"
},
"nativeSrc": "30814:32:40",
"nodeType": "YulFunctionCall",
"src": "30814:32:40"
},
"nativeSrc": "30811:119:40",
"nodeType": "YulIf",
"src": "30811:119:40"
},
{
"nativeSrc": "30940:117:40",
"nodeType": "YulBlock",
"src": "30940:117:40",
"statements": [
{
"nativeSrc": "30955:15:40",
"nodeType": "YulVariableDeclaration",
"src": "30955:15:40",
"value": {
"kind": "number",
"nativeSrc": "30969:1:40",
"nodeType": "YulLiteral",
"src": "30969:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "30959:6:40",
"nodeType": "YulTypedName",
"src": "30959:6:40",
"type": ""
}
]
},
{
"nativeSrc": "30984:63:40",
"nodeType": "YulAssignment",
"src": "30984:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "31019:9:40",
"nodeType": "YulIdentifier",
"src": "31019:9:40"
},
{
"name": "offset",
"nativeSrc": "31030:6:40",
"nodeType": "YulIdentifier",
"src": "31030:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "31015:3:40",
"nodeType": "YulIdentifier",
"src": "31015:3:40"
},
"nativeSrc": "31015:22:40",
"nodeType": "YulFunctionCall",
"src": "31015:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "31039:7:40",
"nodeType": "YulIdentifier",
"src": "31039:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "30994:20:40",
"nodeType": "YulIdentifier",
"src": "30994:20:40"
},
"nativeSrc": "30994:53:40",
"nodeType": "YulFunctionCall",
"src": "30994:53:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "30984:6:40",
"nodeType": "YulIdentifier",
"src": "30984:6:40"
}
]
}
]
},
{
"nativeSrc": "31067:118:40",
"nodeType": "YulBlock",
"src": "31067:118:40",
"statements": [
{
"nativeSrc": "31082:16:40",
"nodeType": "YulVariableDeclaration",
"src": "31082:16:40",
"value": {
"kind": "number",
"nativeSrc": "31096:2:40",
"nodeType": "YulLiteral",
"src": "31096:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "31086:6:40",
"nodeType": "YulTypedName",
"src": "31086:6:40",
"type": ""
}
]
},
{
"nativeSrc": "31112:63:40",
"nodeType": "YulAssignment",
"src": "31112:63:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "31147:9:40",
"nodeType": "YulIdentifier",
"src": "31147:9:40"
},
{
"name": "offset",
"nativeSrc": "31158:6:40",
"nodeType": "YulIdentifier",
"src": "31158:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "31143:3:40",
"nodeType": "YulIdentifier",
"src": "31143:3:40"
},
"nativeSrc": "31143:22:40",
"nodeType": "YulFunctionCall",
"src": "31143:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "31167:7:40",
"nodeType": "YulIdentifier",
"src": "31167:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "31122:20:40",
"nodeType": "YulIdentifier",
"src": "31122:20:40"
},
"nativeSrc": "31122:53:40",
"nodeType": "YulFunctionCall",
"src": "31122:53:40"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "31112:6:40",
"nodeType": "YulIdentifier",
"src": "31112:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nativeSrc": "30718:474:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "30763:9:40",
"nodeType": "YulTypedName",
"src": "30763:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "30774:7:40",
"nodeType": "YulTypedName",
"src": "30774:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "30786:6:40",
"nodeType": "YulTypedName",
"src": "30786:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "30794:6:40",
"nodeType": "YulTypedName",
"src": "30794:6:40",
"type": ""
}
],
"src": "30718:474:40"
},
{
"body": {
"nativeSrc": "31288:287:40",
"nodeType": "YulBlock",
"src": "31288:287:40",
"statements": [
{
"body": {
"nativeSrc": "31334:83:40",
"nodeType": "YulBlock",
"src": "31334:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "31336:77:40",
"nodeType": "YulIdentifier",
"src": "31336:77:40"
},
"nativeSrc": "31336:79:40",
"nodeType": "YulFunctionCall",
"src": "31336:79:40"
},
"nativeSrc": "31336:79:40",
"nodeType": "YulExpressionStatement",
"src": "31336:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "31309:7:40",
"nodeType": "YulIdentifier",
"src": "31309:7:40"
},
{
"name": "headStart",
"nativeSrc": "31318:9:40",
"nodeType": "YulIdentifier",
"src": "31318:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "31305:3:40",
"nodeType": "YulIdentifier",
"src": "31305:3:40"
},
"nativeSrc": "31305:23:40",
"nodeType": "YulFunctionCall",
"src": "31305:23:40"
},
{
"kind": "number",
"nativeSrc": "31330:2:40",
"nodeType": "YulLiteral",
"src": "31330:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "31301:3:40",
"nodeType": "YulIdentifier",
"src": "31301:3:40"
},
"nativeSrc": "31301:32:40",
"nodeType": "YulFunctionCall",
"src": "31301:32:40"
},
"nativeSrc": "31298:119:40",
"nodeType": "YulIf",
"src": "31298:119:40"
},
{
"nativeSrc": "31427:141:40",
"nodeType": "YulBlock",
"src": "31427:141:40",
"statements": [
{
"nativeSrc": "31442:15:40",
"nodeType": "YulVariableDeclaration",
"src": "31442:15:40",
"value": {
"kind": "number",
"nativeSrc": "31456:1:40",
"nodeType": "YulLiteral",
"src": "31456:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "31446:6:40",
"nodeType": "YulTypedName",
"src": "31446:6:40",
"type": ""
}
]
},
{
"nativeSrc": "31471:87:40",
"nodeType": "YulAssignment",
"src": "31471:87:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "31530:9:40",
"nodeType": "YulIdentifier",
"src": "31530:9:40"
},
{
"name": "offset",
"nativeSrc": "31541:6:40",
"nodeType": "YulIdentifier",
"src": "31541:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "31526:3:40",
"nodeType": "YulIdentifier",
"src": "31526:3:40"
},
"nativeSrc": "31526:22:40",
"nodeType": "YulFunctionCall",
"src": "31526:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "31550:7:40",
"nodeType": "YulIdentifier",
"src": "31550:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_Origin_$40_calldata_ptr",
"nativeSrc": "31481:44:40",
"nodeType": "YulIdentifier",
"src": "31481:44:40"
},
"nativeSrc": "31481:77:40",
"nodeType": "YulFunctionCall",
"src": "31481:77:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "31471:6:40",
"nodeType": "YulIdentifier",
"src": "31471:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_Origin_$40_calldata_ptr",
"nativeSrc": "31198:377:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "31258:9:40",
"nodeType": "YulTypedName",
"src": "31258:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "31269:7:40",
"nodeType": "YulTypedName",
"src": "31269:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "31281:6:40",
"nodeType": "YulTypedName",
"src": "31281:6:40",
"type": ""
}
],
"src": "31198:377:40"
},
{
"body": {
"nativeSrc": "31609:152:40",
"nodeType": "YulBlock",
"src": "31609:152:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "31626:1:40",
"nodeType": "YulLiteral",
"src": "31626:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "31629:77:40",
"nodeType": "YulLiteral",
"src": "31629:77:40",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "31619:6:40",
"nodeType": "YulIdentifier",
"src": "31619:6:40"
},
"nativeSrc": "31619:88:40",
"nodeType": "YulFunctionCall",
"src": "31619:88:40"
},
"nativeSrc": "31619:88:40",
"nodeType": "YulExpressionStatement",
"src": "31619:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "31723:1:40",
"nodeType": "YulLiteral",
"src": "31723:1:40",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "31726:4:40",
"nodeType": "YulLiteral",
"src": "31726:4:40",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "31716:6:40",
"nodeType": "YulIdentifier",
"src": "31716:6:40"
},
"nativeSrc": "31716:15:40",
"nodeType": "YulFunctionCall",
"src": "31716:15:40"
},
"nativeSrc": "31716:15:40",
"nodeType": "YulExpressionStatement",
"src": "31716:15:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "31747:1:40",
"nodeType": "YulLiteral",
"src": "31747:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "31750:4:40",
"nodeType": "YulLiteral",
"src": "31750:4:40",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "31740:6:40",
"nodeType": "YulIdentifier",
"src": "31740:6:40"
},
"nativeSrc": "31740:15:40",
"nodeType": "YulFunctionCall",
"src": "31740:15:40"
},
"nativeSrc": "31740:15:40",
"nodeType": "YulExpressionStatement",
"src": "31740:15:40"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "31581:180:40",
"nodeType": "YulFunctionDefinition",
"src": "31581:180:40"
},
{
"body": {
"nativeSrc": "31818:269:40",
"nodeType": "YulBlock",
"src": "31818:269:40",
"statements": [
{
"nativeSrc": "31828:22:40",
"nodeType": "YulAssignment",
"src": "31828:22:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "31842:4:40",
"nodeType": "YulIdentifier",
"src": "31842:4:40"
},
{
"kind": "number",
"nativeSrc": "31848:1:40",
"nodeType": "YulLiteral",
"src": "31848:1:40",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "31838:3:40",
"nodeType": "YulIdentifier",
"src": "31838:3:40"
},
"nativeSrc": "31838:12:40",
"nodeType": "YulFunctionCall",
"src": "31838:12:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "31828:6:40",
"nodeType": "YulIdentifier",
"src": "31828:6:40"
}
]
},
{
"nativeSrc": "31859:38:40",
"nodeType": "YulVariableDeclaration",
"src": "31859:38:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "31889:4:40",
"nodeType": "YulIdentifier",
"src": "31889:4:40"
},
{
"kind": "number",
"nativeSrc": "31895:1:40",
"nodeType": "YulLiteral",
"src": "31895:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "31885:3:40",
"nodeType": "YulIdentifier",
"src": "31885:3:40"
},
"nativeSrc": "31885:12:40",
"nodeType": "YulFunctionCall",
"src": "31885:12:40"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "31863:18:40",
"nodeType": "YulTypedName",
"src": "31863:18:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "31936:51:40",
"nodeType": "YulBlock",
"src": "31936:51:40",
"statements": [
{
"nativeSrc": "31950:27:40",
"nodeType": "YulAssignment",
"src": "31950:27:40",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "31964:6:40",
"nodeType": "YulIdentifier",
"src": "31964:6:40"
},
{
"kind": "number",
"nativeSrc": "31972:4:40",
"nodeType": "YulLiteral",
"src": "31972:4:40",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "31960:3:40",
"nodeType": "YulIdentifier",
"src": "31960:3:40"
},
"nativeSrc": "31960:17:40",
"nodeType": "YulFunctionCall",
"src": "31960:17:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "31950:6:40",
"nodeType": "YulIdentifier",
"src": "31950:6:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "31916:18:40",
"nodeType": "YulIdentifier",
"src": "31916:18:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "31909:6:40",
"nodeType": "YulIdentifier",
"src": "31909:6:40"
},
"nativeSrc": "31909:26:40",
"nodeType": "YulFunctionCall",
"src": "31909:26:40"
},
"nativeSrc": "31906:81:40",
"nodeType": "YulIf",
"src": "31906:81:40"
},
{
"body": {
"nativeSrc": "32039:42:40",
"nodeType": "YulBlock",
"src": "32039:42:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "32053:16:40",
"nodeType": "YulIdentifier",
"src": "32053:16:40"
},
"nativeSrc": "32053:18:40",
"nodeType": "YulFunctionCall",
"src": "32053:18:40"
},
"nativeSrc": "32053:18:40",
"nodeType": "YulExpressionStatement",
"src": "32053:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "32003:18:40",
"nodeType": "YulIdentifier",
"src": "32003:18:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "32026:6:40",
"nodeType": "YulIdentifier",
"src": "32026:6:40"
},
{
"kind": "number",
"nativeSrc": "32034:2:40",
"nodeType": "YulLiteral",
"src": "32034:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "32023:2:40",
"nodeType": "YulIdentifier",
"src": "32023:2:40"
},
"nativeSrc": "32023:14:40",
"nodeType": "YulFunctionCall",
"src": "32023:14:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "32000:2:40",
"nodeType": "YulIdentifier",
"src": "32000:2:40"
},
"nativeSrc": "32000:38:40",
"nodeType": "YulFunctionCall",
"src": "32000:38:40"
},
"nativeSrc": "31997:84:40",
"nodeType": "YulIf",
"src": "31997:84:40"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "31767:320:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "31802:4:40",
"nodeType": "YulTypedName",
"src": "31802:4:40",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "31811:6:40",
"nodeType": "YulTypedName",
"src": "31811:6:40",
"type": ""
}
],
"src": "31767:320:40"
},
{
"body": {
"nativeSrc": "32156:80:40",
"nodeType": "YulBlock",
"src": "32156:80:40",
"statements": [
{
"nativeSrc": "32166:22:40",
"nodeType": "YulAssignment",
"src": "32166:22:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "32181:6:40",
"nodeType": "YulIdentifier",
"src": "32181:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "32175:5:40",
"nodeType": "YulIdentifier",
"src": "32175:5:40"
},
"nativeSrc": "32175:13:40",
"nodeType": "YulFunctionCall",
"src": "32175:13:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "32166:5:40",
"nodeType": "YulIdentifier",
"src": "32166:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "32224:5:40",
"nodeType": "YulIdentifier",
"src": "32224:5:40"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "32197:26:40",
"nodeType": "YulIdentifier",
"src": "32197:26:40"
},
"nativeSrc": "32197:33:40",
"nodeType": "YulFunctionCall",
"src": "32197:33:40"
},
"nativeSrc": "32197:33:40",
"nodeType": "YulExpressionStatement",
"src": "32197:33:40"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nativeSrc": "32093:143:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "32134:6:40",
"nodeType": "YulTypedName",
"src": "32134:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "32142:3:40",
"nodeType": "YulTypedName",
"src": "32142:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "32150:5:40",
"nodeType": "YulTypedName",
"src": "32150:5:40",
"type": ""
}
],
"src": "32093:143:40"
},
{
"body": {
"nativeSrc": "32319:274:40",
"nodeType": "YulBlock",
"src": "32319:274:40",
"statements": [
{
"body": {
"nativeSrc": "32365:83:40",
"nodeType": "YulBlock",
"src": "32365:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "32367:77:40",
"nodeType": "YulIdentifier",
"src": "32367:77:40"
},
"nativeSrc": "32367:79:40",
"nodeType": "YulFunctionCall",
"src": "32367:79:40"
},
"nativeSrc": "32367:79:40",
"nodeType": "YulExpressionStatement",
"src": "32367:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "32340:7:40",
"nodeType": "YulIdentifier",
"src": "32340:7:40"
},
{
"name": "headStart",
"nativeSrc": "32349:9:40",
"nodeType": "YulIdentifier",
"src": "32349:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "32336:3:40",
"nodeType": "YulIdentifier",
"src": "32336:3:40"
},
"nativeSrc": "32336:23:40",
"nodeType": "YulFunctionCall",
"src": "32336:23:40"
},
{
"kind": "number",
"nativeSrc": "32361:2:40",
"nodeType": "YulLiteral",
"src": "32361:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "32332:3:40",
"nodeType": "YulIdentifier",
"src": "32332:3:40"
},
"nativeSrc": "32332:32:40",
"nodeType": "YulFunctionCall",
"src": "32332:32:40"
},
"nativeSrc": "32329:119:40",
"nodeType": "YulIf",
"src": "32329:119:40"
},
{
"nativeSrc": "32458:128:40",
"nodeType": "YulBlock",
"src": "32458:128:40",
"statements": [
{
"nativeSrc": "32473:15:40",
"nodeType": "YulVariableDeclaration",
"src": "32473:15:40",
"value": {
"kind": "number",
"nativeSrc": "32487:1:40",
"nodeType": "YulLiteral",
"src": "32487:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "32477:6:40",
"nodeType": "YulTypedName",
"src": "32477:6:40",
"type": ""
}
]
},
{
"nativeSrc": "32502:74:40",
"nodeType": "YulAssignment",
"src": "32502:74:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "32548:9:40",
"nodeType": "YulIdentifier",
"src": "32548:9:40"
},
{
"name": "offset",
"nativeSrc": "32559:6:40",
"nodeType": "YulIdentifier",
"src": "32559:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "32544:3:40",
"nodeType": "YulIdentifier",
"src": "32544:3:40"
},
"nativeSrc": "32544:22:40",
"nodeType": "YulFunctionCall",
"src": "32544:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "32568:7:40",
"nodeType": "YulIdentifier",
"src": "32568:7:40"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nativeSrc": "32512:31:40",
"nodeType": "YulIdentifier",
"src": "32512:31:40"
},
"nativeSrc": "32512:64:40",
"nodeType": "YulFunctionCall",
"src": "32512:64:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "32502:6:40",
"nodeType": "YulIdentifier",
"src": "32502:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address_fromMemory",
"nativeSrc": "32242:351:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "32289:9:40",
"nodeType": "YulTypedName",
"src": "32289:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "32300:7:40",
"nodeType": "YulTypedName",
"src": "32300:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "32312:6:40",
"nodeType": "YulTypedName",
"src": "32312:6:40",
"type": ""
}
],
"src": "32242:351:40"
},
{
"body": {
"nativeSrc": "32662:80:40",
"nodeType": "YulBlock",
"src": "32662:80:40",
"statements": [
{
"nativeSrc": "32672:22:40",
"nodeType": "YulAssignment",
"src": "32672:22:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "32687:6:40",
"nodeType": "YulIdentifier",
"src": "32687:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "32681:5:40",
"nodeType": "YulIdentifier",
"src": "32681:5:40"
},
"nativeSrc": "32681:13:40",
"nodeType": "YulFunctionCall",
"src": "32681:13:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "32672:5:40",
"nodeType": "YulIdentifier",
"src": "32672:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "32730:5:40",
"nodeType": "YulIdentifier",
"src": "32730:5:40"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "32703:26:40",
"nodeType": "YulIdentifier",
"src": "32703:26:40"
},
"nativeSrc": "32703:33:40",
"nodeType": "YulFunctionCall",
"src": "32703:33:40"
},
"nativeSrc": "32703:33:40",
"nodeType": "YulExpressionStatement",
"src": "32703:33:40"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "32599:143:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "32640:6:40",
"nodeType": "YulTypedName",
"src": "32640:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "32648:3:40",
"nodeType": "YulTypedName",
"src": "32648:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "32656:5:40",
"nodeType": "YulTypedName",
"src": "32656:5:40",
"type": ""
}
],
"src": "32599:143:40"
},
{
"body": {
"nativeSrc": "32825:274:40",
"nodeType": "YulBlock",
"src": "32825:274:40",
"statements": [
{
"body": {
"nativeSrc": "32871:83:40",
"nodeType": "YulBlock",
"src": "32871:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "32873:77:40",
"nodeType": "YulIdentifier",
"src": "32873:77:40"
},
"nativeSrc": "32873:79:40",
"nodeType": "YulFunctionCall",
"src": "32873:79:40"
},
"nativeSrc": "32873:79:40",
"nodeType": "YulExpressionStatement",
"src": "32873:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "32846:7:40",
"nodeType": "YulIdentifier",
"src": "32846:7:40"
},
{
"name": "headStart",
"nativeSrc": "32855:9:40",
"nodeType": "YulIdentifier",
"src": "32855:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "32842:3:40",
"nodeType": "YulIdentifier",
"src": "32842:3:40"
},
"nativeSrc": "32842:23:40",
"nodeType": "YulFunctionCall",
"src": "32842:23:40"
},
{
"kind": "number",
"nativeSrc": "32867:2:40",
"nodeType": "YulLiteral",
"src": "32867:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "32838:3:40",
"nodeType": "YulIdentifier",
"src": "32838:3:40"
},
"nativeSrc": "32838:32:40",
"nodeType": "YulFunctionCall",
"src": "32838:32:40"
},
"nativeSrc": "32835:119:40",
"nodeType": "YulIf",
"src": "32835:119:40"
},
{
"nativeSrc": "32964:128:40",
"nodeType": "YulBlock",
"src": "32964:128:40",
"statements": [
{
"nativeSrc": "32979:15:40",
"nodeType": "YulVariableDeclaration",
"src": "32979:15:40",
"value": {
"kind": "number",
"nativeSrc": "32993:1:40",
"nodeType": "YulLiteral",
"src": "32993:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "32983:6:40",
"nodeType": "YulTypedName",
"src": "32983:6:40",
"type": ""
}
]
},
{
"nativeSrc": "33008:74:40",
"nodeType": "YulAssignment",
"src": "33008:74:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "33054:9:40",
"nodeType": "YulIdentifier",
"src": "33054:9:40"
},
{
"name": "offset",
"nativeSrc": "33065:6:40",
"nodeType": "YulIdentifier",
"src": "33065:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "33050:3:40",
"nodeType": "YulIdentifier",
"src": "33050:3:40"
},
"nativeSrc": "33050:22:40",
"nodeType": "YulFunctionCall",
"src": "33050:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "33074:7:40",
"nodeType": "YulIdentifier",
"src": "33074:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "33018:31:40",
"nodeType": "YulIdentifier",
"src": "33018:31:40"
},
"nativeSrc": "33018:64:40",
"nodeType": "YulFunctionCall",
"src": "33018:64:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "33008:6:40",
"nodeType": "YulIdentifier",
"src": "33008:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nativeSrc": "32748:351:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "32795:9:40",
"nodeType": "YulTypedName",
"src": "32795:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "32806:7:40",
"nodeType": "YulTypedName",
"src": "32806:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "32818:6:40",
"nodeType": "YulTypedName",
"src": "32818:6:40",
"type": ""
}
],
"src": "32748:351:40"
},
{
"body": {
"nativeSrc": "33133:152:40",
"nodeType": "YulBlock",
"src": "33133:152:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "33150:1:40",
"nodeType": "YulLiteral",
"src": "33150:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "33153:77:40",
"nodeType": "YulLiteral",
"src": "33153:77:40",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "33143:6:40",
"nodeType": "YulIdentifier",
"src": "33143:6:40"
},
"nativeSrc": "33143:88:40",
"nodeType": "YulFunctionCall",
"src": "33143:88:40"
},
"nativeSrc": "33143:88:40",
"nodeType": "YulExpressionStatement",
"src": "33143:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "33247:1:40",
"nodeType": "YulLiteral",
"src": "33247:1:40",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "33250:4:40",
"nodeType": "YulLiteral",
"src": "33250:4:40",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "33240:6:40",
"nodeType": "YulIdentifier",
"src": "33240:6:40"
},
"nativeSrc": "33240:15:40",
"nodeType": "YulFunctionCall",
"src": "33240:15:40"
},
"nativeSrc": "33240:15:40",
"nodeType": "YulExpressionStatement",
"src": "33240:15:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "33271:1:40",
"nodeType": "YulLiteral",
"src": "33271:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "33274:4:40",
"nodeType": "YulLiteral",
"src": "33274:4:40",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "33264:6:40",
"nodeType": "YulIdentifier",
"src": "33264:6:40"
},
"nativeSrc": "33264:15:40",
"nodeType": "YulFunctionCall",
"src": "33264:15:40"
},
"nativeSrc": "33264:15:40",
"nodeType": "YulExpressionStatement",
"src": "33264:15:40"
}
]
},
"name": "panic_error_0x41",
"nativeSrc": "33105:180:40",
"nodeType": "YulFunctionDefinition",
"src": "33105:180:40"
},
{
"body": {
"nativeSrc": "33354:52:40",
"nodeType": "YulBlock",
"src": "33354:52:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "33371:3:40",
"nodeType": "YulIdentifier",
"src": "33371:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "33393:5:40",
"nodeType": "YulIdentifier",
"src": "33393:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint32",
"nativeSrc": "33376:16:40",
"nodeType": "YulIdentifier",
"src": "33376:16:40"
},
"nativeSrc": "33376:23:40",
"nodeType": "YulFunctionCall",
"src": "33376:23:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "33364:6:40",
"nodeType": "YulIdentifier",
"src": "33364:6:40"
},
"nativeSrc": "33364:36:40",
"nodeType": "YulFunctionCall",
"src": "33364:36:40"
},
"nativeSrc": "33364:36:40",
"nodeType": "YulExpressionStatement",
"src": "33364:36:40"
}
]
},
"name": "abi_encode_t_uint32_to_t_uint32_fromStack",
"nativeSrc": "33291:115:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "33342:5:40",
"nodeType": "YulTypedName",
"src": "33342:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "33349:3:40",
"nodeType": "YulTypedName",
"src": "33349:3:40",
"type": ""
}
],
"src": "33291:115:40"
},
{
"body": {
"nativeSrc": "33536:204:40",
"nodeType": "YulBlock",
"src": "33536:204:40",
"statements": [
{
"nativeSrc": "33546:26:40",
"nodeType": "YulAssignment",
"src": "33546:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "33558:9:40",
"nodeType": "YulIdentifier",
"src": "33558:9:40"
},
{
"kind": "number",
"nativeSrc": "33569:2:40",
"nodeType": "YulLiteral",
"src": "33569:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "33554:3:40",
"nodeType": "YulIdentifier",
"src": "33554:3:40"
},
"nativeSrc": "33554:18:40",
"nodeType": "YulFunctionCall",
"src": "33554:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "33546:4:40",
"nodeType": "YulIdentifier",
"src": "33546:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "33624:6:40",
"nodeType": "YulIdentifier",
"src": "33624:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "33637:9:40",
"nodeType": "YulIdentifier",
"src": "33637:9:40"
},
{
"kind": "number",
"nativeSrc": "33648:1:40",
"nodeType": "YulLiteral",
"src": "33648:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "33633:3:40",
"nodeType": "YulIdentifier",
"src": "33633:3:40"
},
"nativeSrc": "33633:17:40",
"nodeType": "YulFunctionCall",
"src": "33633:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint32_to_t_uint32_fromStack",
"nativeSrc": "33582:41:40",
"nodeType": "YulIdentifier",
"src": "33582:41:40"
},
"nativeSrc": "33582:69:40",
"nodeType": "YulFunctionCall",
"src": "33582:69:40"
},
"nativeSrc": "33582:69:40",
"nodeType": "YulExpressionStatement",
"src": "33582:69:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "33705:6:40",
"nodeType": "YulIdentifier",
"src": "33705:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "33718:9:40",
"nodeType": "YulIdentifier",
"src": "33718:9:40"
},
{
"kind": "number",
"nativeSrc": "33729:2:40",
"nodeType": "YulLiteral",
"src": "33729:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "33714:3:40",
"nodeType": "YulIdentifier",
"src": "33714:3:40"
},
"nativeSrc": "33714:18:40",
"nodeType": "YulFunctionCall",
"src": "33714:18:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "33661:43:40",
"nodeType": "YulIdentifier",
"src": "33661:43:40"
},
"nativeSrc": "33661:72:40",
"nodeType": "YulFunctionCall",
"src": "33661:72:40"
},
"nativeSrc": "33661:72:40",
"nodeType": "YulExpressionStatement",
"src": "33661:72:40"
}
]
},
"name": "abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed",
"nativeSrc": "33412:328:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "33500:9:40",
"nodeType": "YulTypedName",
"src": "33500:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "33512:6:40",
"nodeType": "YulTypedName",
"src": "33512:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "33520:6:40",
"nodeType": "YulTypedName",
"src": "33520:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "33531:4:40",
"nodeType": "YulTypedName",
"src": "33531:4:40",
"type": ""
}
],
"src": "33412:328:40"
},
{
"body": {
"nativeSrc": "33789:238:40",
"nodeType": "YulBlock",
"src": "33789:238:40",
"statements": [
{
"nativeSrc": "33799:58:40",
"nodeType": "YulVariableDeclaration",
"src": "33799:58:40",
"value": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "33821:6:40",
"nodeType": "YulIdentifier",
"src": "33821:6:40"
},
{
"arguments": [
{
"name": "size",
"nativeSrc": "33851:4:40",
"nodeType": "YulIdentifier",
"src": "33851:4:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "33829:21:40",
"nodeType": "YulIdentifier",
"src": "33829:21:40"
},
"nativeSrc": "33829:27:40",
"nodeType": "YulFunctionCall",
"src": "33829:27:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "33817:3:40",
"nodeType": "YulIdentifier",
"src": "33817:3:40"
},
"nativeSrc": "33817:40:40",
"nodeType": "YulFunctionCall",
"src": "33817:40:40"
},
"variables": [
{
"name": "newFreePtr",
"nativeSrc": "33803:10:40",
"nodeType": "YulTypedName",
"src": "33803:10:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "33968:22:40",
"nodeType": "YulBlock",
"src": "33968:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "33970:16:40",
"nodeType": "YulIdentifier",
"src": "33970:16:40"
},
"nativeSrc": "33970:18:40",
"nodeType": "YulFunctionCall",
"src": "33970:18:40"
},
"nativeSrc": "33970:18:40",
"nodeType": "YulExpressionStatement",
"src": "33970:18:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "33911:10:40",
"nodeType": "YulIdentifier",
"src": "33911:10:40"
},
{
"kind": "number",
"nativeSrc": "33923:18:40",
"nodeType": "YulLiteral",
"src": "33923:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "33908:2:40",
"nodeType": "YulIdentifier",
"src": "33908:2:40"
},
"nativeSrc": "33908:34:40",
"nodeType": "YulFunctionCall",
"src": "33908:34:40"
},
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "33947:10:40",
"nodeType": "YulIdentifier",
"src": "33947:10:40"
},
{
"name": "memPtr",
"nativeSrc": "33959:6:40",
"nodeType": "YulIdentifier",
"src": "33959:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "33944:2:40",
"nodeType": "YulIdentifier",
"src": "33944:2:40"
},
"nativeSrc": "33944:22:40",
"nodeType": "YulFunctionCall",
"src": "33944:22:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "33905:2:40",
"nodeType": "YulIdentifier",
"src": "33905:2:40"
},
"nativeSrc": "33905:62:40",
"nodeType": "YulFunctionCall",
"src": "33905:62:40"
},
"nativeSrc": "33902:88:40",
"nodeType": "YulIf",
"src": "33902:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "34006:2:40",
"nodeType": "YulLiteral",
"src": "34006:2:40",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nativeSrc": "34010:10:40",
"nodeType": "YulIdentifier",
"src": "34010:10:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "33999:6:40",
"nodeType": "YulIdentifier",
"src": "33999:6:40"
},
"nativeSrc": "33999:22:40",
"nodeType": "YulFunctionCall",
"src": "33999:22:40"
},
"nativeSrc": "33999:22:40",
"nodeType": "YulExpressionStatement",
"src": "33999:22:40"
}
]
},
"name": "finalize_allocation",
"nativeSrc": "33746:281:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "33775:6:40",
"nodeType": "YulTypedName",
"src": "33775:6:40",
"type": ""
},
{
"name": "size",
"nativeSrc": "33783:4:40",
"nodeType": "YulTypedName",
"src": "33783:4:40",
"type": ""
}
],
"src": "33746:281:40"
},
{
"body": {
"nativeSrc": "34074:88:40",
"nodeType": "YulBlock",
"src": "34074:88:40",
"statements": [
{
"nativeSrc": "34084:30:40",
"nodeType": "YulAssignment",
"src": "34084:30:40",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nativeSrc": "34094:18:40",
"nodeType": "YulIdentifier",
"src": "34094:18:40"
},
"nativeSrc": "34094:20:40",
"nodeType": "YulFunctionCall",
"src": "34094:20:40"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "34084:6:40",
"nodeType": "YulIdentifier",
"src": "34084:6:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "34143:6:40",
"nodeType": "YulIdentifier",
"src": "34143:6:40"
},
{
"name": "size",
"nativeSrc": "34151:4:40",
"nodeType": "YulIdentifier",
"src": "34151:4:40"
}
],
"functionName": {
"name": "finalize_allocation",
"nativeSrc": "34123:19:40",
"nodeType": "YulIdentifier",
"src": "34123:19:40"
},
"nativeSrc": "34123:33:40",
"nodeType": "YulFunctionCall",
"src": "34123:33:40"
},
"nativeSrc": "34123:33:40",
"nodeType": "YulExpressionStatement",
"src": "34123:33:40"
}
]
},
"name": "allocate_memory",
"nativeSrc": "34033:129:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nativeSrc": "34058:4:40",
"nodeType": "YulTypedName",
"src": "34058:4:40",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "34067:6:40",
"nodeType": "YulTypedName",
"src": "34067:6:40",
"type": ""
}
],
"src": "34033:129:40"
},
{
"body": {
"nativeSrc": "34287:229:40",
"nodeType": "YulBlock",
"src": "34287:229:40",
"statements": [
{
"body": {
"nativeSrc": "34392:22:40",
"nodeType": "YulBlock",
"src": "34392:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "34394:16:40",
"nodeType": "YulIdentifier",
"src": "34394:16:40"
},
"nativeSrc": "34394:18:40",
"nodeType": "YulFunctionCall",
"src": "34394:18:40"
},
"nativeSrc": "34394:18:40",
"nodeType": "YulExpressionStatement",
"src": "34394:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "34364:6:40",
"nodeType": "YulIdentifier",
"src": "34364:6:40"
},
{
"kind": "number",
"nativeSrc": "34372:18:40",
"nodeType": "YulLiteral",
"src": "34372:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "34361:2:40",
"nodeType": "YulIdentifier",
"src": "34361:2:40"
},
"nativeSrc": "34361:30:40",
"nodeType": "YulFunctionCall",
"src": "34361:30:40"
},
"nativeSrc": "34358:56:40",
"nodeType": "YulIf",
"src": "34358:56:40"
},
{
"nativeSrc": "34424:25:40",
"nodeType": "YulAssignment",
"src": "34424:25:40",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "34436:6:40",
"nodeType": "YulIdentifier",
"src": "34436:6:40"
},
{
"kind": "number",
"nativeSrc": "34444:4:40",
"nodeType": "YulLiteral",
"src": "34444:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "34432:3:40",
"nodeType": "YulIdentifier",
"src": "34432:3:40"
},
"nativeSrc": "34432:17:40",
"nodeType": "YulFunctionCall",
"src": "34432:17:40"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "34424:4:40",
"nodeType": "YulIdentifier",
"src": "34424:4:40"
}
]
},
{
"nativeSrc": "34486:23:40",
"nodeType": "YulAssignment",
"src": "34486:23:40",
"value": {
"arguments": [
{
"name": "size",
"nativeSrc": "34498:4:40",
"nodeType": "YulIdentifier",
"src": "34498:4:40"
},
{
"kind": "number",
"nativeSrc": "34504:4:40",
"nodeType": "YulLiteral",
"src": "34504:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34494:3:40",
"nodeType": "YulIdentifier",
"src": "34494:3:40"
},
"nativeSrc": "34494:15:40",
"nodeType": "YulFunctionCall",
"src": "34494:15:40"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "34486:4:40",
"nodeType": "YulIdentifier",
"src": "34486:4:40"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "34168:348:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nativeSrc": "34271:6:40",
"nodeType": "YulTypedName",
"src": "34271:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nativeSrc": "34282:4:40",
"nodeType": "YulTypedName",
"src": "34282:4:40",
"type": ""
}
],
"src": "34168:348:40"
},
{
"body": {
"nativeSrc": "34611:28:40",
"nodeType": "YulBlock",
"src": "34611:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "34628:1:40",
"nodeType": "YulLiteral",
"src": "34628:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "34631:1:40",
"nodeType": "YulLiteral",
"src": "34631:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "34621:6:40",
"nodeType": "YulIdentifier",
"src": "34621:6:40"
},
"nativeSrc": "34621:12:40",
"nodeType": "YulFunctionCall",
"src": "34621:12:40"
},
"nativeSrc": "34621:12:40",
"nodeType": "YulExpressionStatement",
"src": "34621:12:40"
}
]
},
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nativeSrc": "34522:117:40",
"nodeType": "YulFunctionDefinition",
"src": "34522:117:40"
},
{
"body": {
"nativeSrc": "34734:28:40",
"nodeType": "YulBlock",
"src": "34734:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "34751:1:40",
"nodeType": "YulLiteral",
"src": "34751:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "34754:1:40",
"nodeType": "YulLiteral",
"src": "34754:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "34744:6:40",
"nodeType": "YulIdentifier",
"src": "34744:6:40"
},
"nativeSrc": "34744:12:40",
"nodeType": "YulFunctionCall",
"src": "34744:12:40"
},
"nativeSrc": "34744:12:40",
"nodeType": "YulExpressionStatement",
"src": "34744:12:40"
}
]
},
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nativeSrc": "34645:117:40",
"nodeType": "YulFunctionDefinition",
"src": "34645:117:40"
},
{
"body": {
"nativeSrc": "34857:28:40",
"nodeType": "YulBlock",
"src": "34857:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "34874:1:40",
"nodeType": "YulLiteral",
"src": "34874:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "34877:1:40",
"nodeType": "YulLiteral",
"src": "34877:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "34867:6:40",
"nodeType": "YulIdentifier",
"src": "34867:6:40"
},
"nativeSrc": "34867:12:40",
"nodeType": "YulFunctionCall",
"src": "34867:12:40"
},
"nativeSrc": "34867:12:40",
"nodeType": "YulExpressionStatement",
"src": "34867:12:40"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "34768:117:40",
"nodeType": "YulFunctionDefinition",
"src": "34768:117:40"
},
{
"body": {
"nativeSrc": "34957:241:40",
"nodeType": "YulBlock",
"src": "34957:241:40",
"statements": [
{
"body": {
"nativeSrc": "35062:22:40",
"nodeType": "YulBlock",
"src": "35062:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "35064:16:40",
"nodeType": "YulIdentifier",
"src": "35064:16:40"
},
"nativeSrc": "35064:18:40",
"nodeType": "YulFunctionCall",
"src": "35064:18:40"
},
"nativeSrc": "35064:18:40",
"nodeType": "YulExpressionStatement",
"src": "35064:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "35034:6:40",
"nodeType": "YulIdentifier",
"src": "35034:6:40"
},
{
"kind": "number",
"nativeSrc": "35042:18:40",
"nodeType": "YulLiteral",
"src": "35042:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "35031:2:40",
"nodeType": "YulIdentifier",
"src": "35031:2:40"
},
"nativeSrc": "35031:30:40",
"nodeType": "YulFunctionCall",
"src": "35031:30:40"
},
"nativeSrc": "35028:56:40",
"nodeType": "YulIf",
"src": "35028:56:40"
},
{
"nativeSrc": "35094:37:40",
"nodeType": "YulAssignment",
"src": "35094:37:40",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "35124:6:40",
"nodeType": "YulIdentifier",
"src": "35124:6:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "35102:21:40",
"nodeType": "YulIdentifier",
"src": "35102:21:40"
},
"nativeSrc": "35102:29:40",
"nodeType": "YulFunctionCall",
"src": "35102:29:40"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "35094:4:40",
"nodeType": "YulIdentifier",
"src": "35094:4:40"
}
]
},
{
"nativeSrc": "35168:23:40",
"nodeType": "YulAssignment",
"src": "35168:23:40",
"value": {
"arguments": [
{
"name": "size",
"nativeSrc": "35180:4:40",
"nodeType": "YulIdentifier",
"src": "35180:4:40"
},
{
"kind": "number",
"nativeSrc": "35186:4:40",
"nodeType": "YulLiteral",
"src": "35186:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35176:3:40",
"nodeType": "YulIdentifier",
"src": "35176:3:40"
},
"nativeSrc": "35176:15:40",
"nodeType": "YulFunctionCall",
"src": "35176:15:40"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "35168:4:40",
"nodeType": "YulIdentifier",
"src": "35168:4:40"
}
]
}
]
},
"name": "array_allocation_size_t_bytes_memory_ptr",
"nativeSrc": "34891:307:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nativeSrc": "34941:6:40",
"nodeType": "YulTypedName",
"src": "34941:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nativeSrc": "34952:4:40",
"nodeType": "YulTypedName",
"src": "34952:4:40",
"type": ""
}
],
"src": "34891:307:40"
},
{
"body": {
"nativeSrc": "35268:82:40",
"nodeType": "YulBlock",
"src": "35268:82:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nativeSrc": "35291:3:40",
"nodeType": "YulIdentifier",
"src": "35291:3:40"
},
{
"name": "src",
"nativeSrc": "35296:3:40",
"nodeType": "YulIdentifier",
"src": "35296:3:40"
},
{
"name": "length",
"nativeSrc": "35301:6:40",
"nodeType": "YulIdentifier",
"src": "35301:6:40"
}
],
"functionName": {
"name": "calldatacopy",
"nativeSrc": "35278:12:40",
"nodeType": "YulIdentifier",
"src": "35278:12:40"
},
"nativeSrc": "35278:30:40",
"nodeType": "YulFunctionCall",
"src": "35278:30:40"
},
"nativeSrc": "35278:30:40",
"nodeType": "YulExpressionStatement",
"src": "35278:30:40"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "35328:3:40",
"nodeType": "YulIdentifier",
"src": "35328:3:40"
},
{
"name": "length",
"nativeSrc": "35333:6:40",
"nodeType": "YulIdentifier",
"src": "35333:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35324:3:40",
"nodeType": "YulIdentifier",
"src": "35324:3:40"
},
"nativeSrc": "35324:16:40",
"nodeType": "YulFunctionCall",
"src": "35324:16:40"
},
{
"kind": "number",
"nativeSrc": "35342:1:40",
"nodeType": "YulLiteral",
"src": "35342:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "35317:6:40",
"nodeType": "YulIdentifier",
"src": "35317:6:40"
},
"nativeSrc": "35317:27:40",
"nodeType": "YulFunctionCall",
"src": "35317:27:40"
},
"nativeSrc": "35317:27:40",
"nodeType": "YulExpressionStatement",
"src": "35317:27:40"
}
]
},
"name": "copy_calldata_to_memory_with_cleanup",
"nativeSrc": "35204:146:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "35250:3:40",
"nodeType": "YulTypedName",
"src": "35250:3:40",
"type": ""
},
{
"name": "dst",
"nativeSrc": "35255:3:40",
"nodeType": "YulTypedName",
"src": "35255:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "35260:6:40",
"nodeType": "YulTypedName",
"src": "35260:6:40",
"type": ""
}
],
"src": "35204:146:40"
},
{
"body": {
"nativeSrc": "35439:340:40",
"nodeType": "YulBlock",
"src": "35439:340:40",
"statements": [
{
"nativeSrc": "35449:74:40",
"nodeType": "YulAssignment",
"src": "35449:74:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nativeSrc": "35515:6:40",
"nodeType": "YulIdentifier",
"src": "35515:6:40"
}
],
"functionName": {
"name": "array_allocation_size_t_bytes_memory_ptr",
"nativeSrc": "35474:40:40",
"nodeType": "YulIdentifier",
"src": "35474:40:40"
},
"nativeSrc": "35474:48:40",
"nodeType": "YulFunctionCall",
"src": "35474:48:40"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "35458:15:40",
"nodeType": "YulIdentifier",
"src": "35458:15:40"
},
"nativeSrc": "35458:65:40",
"nodeType": "YulFunctionCall",
"src": "35458:65:40"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "35449:5:40",
"nodeType": "YulIdentifier",
"src": "35449:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nativeSrc": "35539:5:40",
"nodeType": "YulIdentifier",
"src": "35539:5:40"
},
{
"name": "length",
"nativeSrc": "35546:6:40",
"nodeType": "YulIdentifier",
"src": "35546:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "35532:6:40",
"nodeType": "YulIdentifier",
"src": "35532:6:40"
},
"nativeSrc": "35532:21:40",
"nodeType": "YulFunctionCall",
"src": "35532:21:40"
},
"nativeSrc": "35532:21:40",
"nodeType": "YulExpressionStatement",
"src": "35532:21:40"
},
{
"nativeSrc": "35562:27:40",
"nodeType": "YulVariableDeclaration",
"src": "35562:27:40",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "35577:5:40",
"nodeType": "YulIdentifier",
"src": "35577:5:40"
},
{
"kind": "number",
"nativeSrc": "35584:4:40",
"nodeType": "YulLiteral",
"src": "35584:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35573:3:40",
"nodeType": "YulIdentifier",
"src": "35573:3:40"
},
"nativeSrc": "35573:16:40",
"nodeType": "YulFunctionCall",
"src": "35573:16:40"
},
"variables": [
{
"name": "dst",
"nativeSrc": "35566:3:40",
"nodeType": "YulTypedName",
"src": "35566:3:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "35627:83:40",
"nodeType": "YulBlock",
"src": "35627:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "35629:77:40",
"nodeType": "YulIdentifier",
"src": "35629:77:40"
},
"nativeSrc": "35629:79:40",
"nodeType": "YulFunctionCall",
"src": "35629:79:40"
},
"nativeSrc": "35629:79:40",
"nodeType": "YulExpressionStatement",
"src": "35629:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "35608:3:40",
"nodeType": "YulIdentifier",
"src": "35608:3:40"
},
{
"name": "length",
"nativeSrc": "35613:6:40",
"nodeType": "YulIdentifier",
"src": "35613:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35604:3:40",
"nodeType": "YulIdentifier",
"src": "35604:3:40"
},
"nativeSrc": "35604:16:40",
"nodeType": "YulFunctionCall",
"src": "35604:16:40"
},
{
"name": "end",
"nativeSrc": "35622:3:40",
"nodeType": "YulIdentifier",
"src": "35622:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "35601:2:40",
"nodeType": "YulIdentifier",
"src": "35601:2:40"
},
"nativeSrc": "35601:25:40",
"nodeType": "YulFunctionCall",
"src": "35601:25:40"
},
"nativeSrc": "35598:112:40",
"nodeType": "YulIf",
"src": "35598:112:40"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nativeSrc": "35756:3:40",
"nodeType": "YulIdentifier",
"src": "35756:3:40"
},
{
"name": "dst",
"nativeSrc": "35761:3:40",
"nodeType": "YulIdentifier",
"src": "35761:3:40"
},
{
"name": "length",
"nativeSrc": "35766:6:40",
"nodeType": "YulIdentifier",
"src": "35766:6:40"
}
],
"functionName": {
"name": "copy_calldata_to_memory_with_cleanup",
"nativeSrc": "35719:36:40",
"nodeType": "YulIdentifier",
"src": "35719:36:40"
},
"nativeSrc": "35719:54:40",
"nodeType": "YulFunctionCall",
"src": "35719:54:40"
},
"nativeSrc": "35719:54:40",
"nodeType": "YulExpressionStatement",
"src": "35719:54:40"
}
]
},
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nativeSrc": "35356:423:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "35412:3:40",
"nodeType": "YulTypedName",
"src": "35412:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "35417:6:40",
"nodeType": "YulTypedName",
"src": "35417:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "35425:3:40",
"nodeType": "YulTypedName",
"src": "35425:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "35433:5:40",
"nodeType": "YulTypedName",
"src": "35433:5:40",
"type": ""
}
],
"src": "35356:423:40"
},
{
"body": {
"nativeSrc": "35859:277:40",
"nodeType": "YulBlock",
"src": "35859:277:40",
"statements": [
{
"body": {
"nativeSrc": "35908:83:40",
"nodeType": "YulBlock",
"src": "35908:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "35910:77:40",
"nodeType": "YulIdentifier",
"src": "35910:77:40"
},
"nativeSrc": "35910:79:40",
"nodeType": "YulFunctionCall",
"src": "35910:79:40"
},
"nativeSrc": "35910:79:40",
"nodeType": "YulExpressionStatement",
"src": "35910:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "35887:6:40",
"nodeType": "YulIdentifier",
"src": "35887:6:40"
},
{
"kind": "number",
"nativeSrc": "35895:4:40",
"nodeType": "YulLiteral",
"src": "35895:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35883:3:40",
"nodeType": "YulIdentifier",
"src": "35883:3:40"
},
"nativeSrc": "35883:17:40",
"nodeType": "YulFunctionCall",
"src": "35883:17:40"
},
{
"name": "end",
"nativeSrc": "35902:3:40",
"nodeType": "YulIdentifier",
"src": "35902:3:40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "35879:3:40",
"nodeType": "YulIdentifier",
"src": "35879:3:40"
},
"nativeSrc": "35879:27:40",
"nodeType": "YulFunctionCall",
"src": "35879:27:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "35872:6:40",
"nodeType": "YulIdentifier",
"src": "35872:6:40"
},
"nativeSrc": "35872:35:40",
"nodeType": "YulFunctionCall",
"src": "35872:35:40"
},
"nativeSrc": "35869:122:40",
"nodeType": "YulIf",
"src": "35869:122:40"
},
{
"nativeSrc": "36000:34:40",
"nodeType": "YulVariableDeclaration",
"src": "36000:34:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "36027:6:40",
"nodeType": "YulIdentifier",
"src": "36027:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "36014:12:40",
"nodeType": "YulIdentifier",
"src": "36014:12:40"
},
"nativeSrc": "36014:20:40",
"nodeType": "YulFunctionCall",
"src": "36014:20:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "36004:6:40",
"nodeType": "YulTypedName",
"src": "36004:6:40",
"type": ""
}
]
},
{
"nativeSrc": "36043:87:40",
"nodeType": "YulAssignment",
"src": "36043:87:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "36103:6:40",
"nodeType": "YulIdentifier",
"src": "36103:6:40"
},
{
"kind": "number",
"nativeSrc": "36111:4:40",
"nodeType": "YulLiteral",
"src": "36111:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36099:3:40",
"nodeType": "YulIdentifier",
"src": "36099:3:40"
},
"nativeSrc": "36099:17:40",
"nodeType": "YulFunctionCall",
"src": "36099:17:40"
},
{
"name": "length",
"nativeSrc": "36118:6:40",
"nodeType": "YulIdentifier",
"src": "36118:6:40"
},
{
"name": "end",
"nativeSrc": "36126:3:40",
"nodeType": "YulIdentifier",
"src": "36126:3:40"
}
],
"functionName": {
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nativeSrc": "36052:46:40",
"nodeType": "YulIdentifier",
"src": "36052:46:40"
},
"nativeSrc": "36052:78:40",
"nodeType": "YulFunctionCall",
"src": "36052:78:40"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "36043:5:40",
"nodeType": "YulIdentifier",
"src": "36043:5:40"
}
]
}
]
},
"name": "abi_decode_t_bytes_memory_ptr",
"nativeSrc": "35798:338:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "35837:6:40",
"nodeType": "YulTypedName",
"src": "35837:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "35845:3:40",
"nodeType": "YulTypedName",
"src": "35845:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "35853:5:40",
"nodeType": "YulTypedName",
"src": "35853:5:40",
"type": ""
}
],
"src": "35798:338:40"
},
{
"body": {
"nativeSrc": "36268:827:40",
"nodeType": "YulBlock",
"src": "36268:827:40",
"statements": [
{
"body": {
"nativeSrc": "36312:83:40",
"nodeType": "YulBlock",
"src": "36312:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nativeSrc": "36314:77:40",
"nodeType": "YulIdentifier",
"src": "36314:77:40"
},
"nativeSrc": "36314:79:40",
"nodeType": "YulFunctionCall",
"src": "36314:79:40"
},
"nativeSrc": "36314:79:40",
"nodeType": "YulExpressionStatement",
"src": "36314:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nativeSrc": "36289:3:40",
"nodeType": "YulIdentifier",
"src": "36289:3:40"
},
{
"name": "headStart",
"nativeSrc": "36294:9:40",
"nodeType": "YulIdentifier",
"src": "36294:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "36285:3:40",
"nodeType": "YulIdentifier",
"src": "36285:3:40"
},
"nativeSrc": "36285:19:40",
"nodeType": "YulFunctionCall",
"src": "36285:19:40"
},
{
"kind": "number",
"nativeSrc": "36306:4:40",
"nodeType": "YulLiteral",
"src": "36306:4:40",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "36281:3:40",
"nodeType": "YulIdentifier",
"src": "36281:3:40"
},
"nativeSrc": "36281:30:40",
"nodeType": "YulFunctionCall",
"src": "36281:30:40"
},
"nativeSrc": "36278:117:40",
"nodeType": "YulIf",
"src": "36278:117:40"
},
{
"nativeSrc": "36404:30:40",
"nodeType": "YulAssignment",
"src": "36404:30:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "36429:4:40",
"nodeType": "YulLiteral",
"src": "36429:4:40",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "36413:15:40",
"nodeType": "YulIdentifier",
"src": "36413:15:40"
},
"nativeSrc": "36413:21:40",
"nodeType": "YulFunctionCall",
"src": "36413:21:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "36404:5:40",
"nodeType": "YulIdentifier",
"src": "36404:5:40"
}
]
},
{
"nativeSrc": "36444:148:40",
"nodeType": "YulBlock",
"src": "36444:148:40",
"statements": [
{
"nativeSrc": "36478:15:40",
"nodeType": "YulVariableDeclaration",
"src": "36478:15:40",
"value": {
"kind": "number",
"nativeSrc": "36492:1:40",
"nodeType": "YulLiteral",
"src": "36492:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "36482:6:40",
"nodeType": "YulTypedName",
"src": "36482:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "36518:5:40",
"nodeType": "YulIdentifier",
"src": "36518:5:40"
},
{
"kind": "number",
"nativeSrc": "36525:4:40",
"nodeType": "YulLiteral",
"src": "36525:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36514:3:40",
"nodeType": "YulIdentifier",
"src": "36514:3:40"
},
"nativeSrc": "36514:16:40",
"nodeType": "YulFunctionCall",
"src": "36514:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "36556:9:40",
"nodeType": "YulIdentifier",
"src": "36556:9:40"
},
{
"name": "offset",
"nativeSrc": "36567:6:40",
"nodeType": "YulIdentifier",
"src": "36567:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36552:3:40",
"nodeType": "YulIdentifier",
"src": "36552:3:40"
},
"nativeSrc": "36552:22:40",
"nodeType": "YulFunctionCall",
"src": "36552:22:40"
},
{
"name": "end",
"nativeSrc": "36576:3:40",
"nodeType": "YulIdentifier",
"src": "36576:3:40"
}
],
"functionName": {
"name": "abi_decode_t_uint32",
"nativeSrc": "36532:19:40",
"nodeType": "YulIdentifier",
"src": "36532:19:40"
},
"nativeSrc": "36532:48:40",
"nodeType": "YulFunctionCall",
"src": "36532:48:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "36507:6:40",
"nodeType": "YulIdentifier",
"src": "36507:6:40"
},
"nativeSrc": "36507:74:40",
"nodeType": "YulFunctionCall",
"src": "36507:74:40"
},
"nativeSrc": "36507:74:40",
"nodeType": "YulExpressionStatement",
"src": "36507:74:40"
}
]
},
{
"nativeSrc": "36602:153:40",
"nodeType": "YulBlock",
"src": "36602:153:40",
"statements": [
{
"nativeSrc": "36640:16:40",
"nodeType": "YulVariableDeclaration",
"src": "36640:16:40",
"value": {
"kind": "number",
"nativeSrc": "36654:2:40",
"nodeType": "YulLiteral",
"src": "36654:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "36644:6:40",
"nodeType": "YulTypedName",
"src": "36644:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "36681:5:40",
"nodeType": "YulIdentifier",
"src": "36681:5:40"
},
{
"kind": "number",
"nativeSrc": "36688:4:40",
"nodeType": "YulLiteral",
"src": "36688:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36677:3:40",
"nodeType": "YulIdentifier",
"src": "36677:3:40"
},
"nativeSrc": "36677:16:40",
"nodeType": "YulFunctionCall",
"src": "36677:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "36719:9:40",
"nodeType": "YulIdentifier",
"src": "36719:9:40"
},
{
"name": "offset",
"nativeSrc": "36730:6:40",
"nodeType": "YulIdentifier",
"src": "36730:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36715:3:40",
"nodeType": "YulIdentifier",
"src": "36715:3:40"
},
"nativeSrc": "36715:22:40",
"nodeType": "YulFunctionCall",
"src": "36715:22:40"
},
{
"name": "end",
"nativeSrc": "36739:3:40",
"nodeType": "YulIdentifier",
"src": "36739:3:40"
}
],
"functionName": {
"name": "abi_decode_t_uint16",
"nativeSrc": "36695:19:40",
"nodeType": "YulIdentifier",
"src": "36695:19:40"
},
"nativeSrc": "36695:48:40",
"nodeType": "YulFunctionCall",
"src": "36695:48:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "36670:6:40",
"nodeType": "YulIdentifier",
"src": "36670:6:40"
},
"nativeSrc": "36670:74:40",
"nodeType": "YulFunctionCall",
"src": "36670:74:40"
},
"nativeSrc": "36670:74:40",
"nodeType": "YulExpressionStatement",
"src": "36670:74:40"
}
]
},
{
"nativeSrc": "36765:323:40",
"nodeType": "YulBlock",
"src": "36765:323:40",
"statements": [
{
"nativeSrc": "36803:46:40",
"nodeType": "YulVariableDeclaration",
"src": "36803:46:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "36834:9:40",
"nodeType": "YulIdentifier",
"src": "36834:9:40"
},
{
"kind": "number",
"nativeSrc": "36845:2:40",
"nodeType": "YulLiteral",
"src": "36845:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36830:3:40",
"nodeType": "YulIdentifier",
"src": "36830:3:40"
},
"nativeSrc": "36830:18:40",
"nodeType": "YulFunctionCall",
"src": "36830:18:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "36817:12:40",
"nodeType": "YulIdentifier",
"src": "36817:12:40"
},
"nativeSrc": "36817:32:40",
"nodeType": "YulFunctionCall",
"src": "36817:32:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "36807:6:40",
"nodeType": "YulTypedName",
"src": "36807:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "36896:83:40",
"nodeType": "YulBlock",
"src": "36896:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nativeSrc": "36898:77:40",
"nodeType": "YulIdentifier",
"src": "36898:77:40"
},
"nativeSrc": "36898:79:40",
"nodeType": "YulFunctionCall",
"src": "36898:79:40"
},
"nativeSrc": "36898:79:40",
"nodeType": "YulExpressionStatement",
"src": "36898:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "36868:6:40",
"nodeType": "YulIdentifier",
"src": "36868:6:40"
},
{
"kind": "number",
"nativeSrc": "36876:18:40",
"nodeType": "YulLiteral",
"src": "36876:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "36865:2:40",
"nodeType": "YulIdentifier",
"src": "36865:2:40"
},
"nativeSrc": "36865:30:40",
"nodeType": "YulFunctionCall",
"src": "36865:30:40"
},
"nativeSrc": "36862:117:40",
"nodeType": "YulIf",
"src": "36862:117:40"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "37004:5:40",
"nodeType": "YulIdentifier",
"src": "37004:5:40"
},
{
"kind": "number",
"nativeSrc": "37011:4:40",
"nodeType": "YulLiteral",
"src": "37011:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "37000:3:40",
"nodeType": "YulIdentifier",
"src": "37000:3:40"
},
"nativeSrc": "37000:16:40",
"nodeType": "YulFunctionCall",
"src": "37000:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "37052:9:40",
"nodeType": "YulIdentifier",
"src": "37052:9:40"
},
{
"name": "offset",
"nativeSrc": "37063:6:40",
"nodeType": "YulIdentifier",
"src": "37063:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "37048:3:40",
"nodeType": "YulIdentifier",
"src": "37048:3:40"
},
"nativeSrc": "37048:22:40",
"nodeType": "YulFunctionCall",
"src": "37048:22:40"
},
{
"name": "end",
"nativeSrc": "37072:3:40",
"nodeType": "YulIdentifier",
"src": "37072:3:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nativeSrc": "37018:29:40",
"nodeType": "YulIdentifier",
"src": "37018:29:40"
},
"nativeSrc": "37018:58:40",
"nodeType": "YulFunctionCall",
"src": "37018:58:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "36993:6:40",
"nodeType": "YulIdentifier",
"src": "36993:6:40"
},
"nativeSrc": "36993:84:40",
"nodeType": "YulFunctionCall",
"src": "36993:84:40"
},
"nativeSrc": "36993:84:40",
"nodeType": "YulExpressionStatement",
"src": "36993:84:40"
}
]
}
]
},
"name": "abi_decode_t_struct$_EnforcedOptionParam_$1932_memory_ptr",
"nativeSrc": "36176:919:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "36243:9:40",
"nodeType": "YulTypedName",
"src": "36243:9:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "36254:3:40",
"nodeType": "YulTypedName",
"src": "36254:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "36262:5:40",
"nodeType": "YulTypedName",
"src": "36262:5:40",
"type": ""
}
],
"src": "36176:919:40"
},
{
"body": {
"nativeSrc": "37276:887:40",
"nodeType": "YulBlock",
"src": "37276:887:40",
"statements": [
{
"nativeSrc": "37286:127:40",
"nodeType": "YulAssignment",
"src": "37286:127:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nativeSrc": "37405:6:40",
"nodeType": "YulIdentifier",
"src": "37405:6:40"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "37311:93:40",
"nodeType": "YulIdentifier",
"src": "37311:93:40"
},
"nativeSrc": "37311:101:40",
"nodeType": "YulFunctionCall",
"src": "37311:101:40"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "37295:15:40",
"nodeType": "YulIdentifier",
"src": "37295:15:40"
},
"nativeSrc": "37295:118:40",
"nodeType": "YulFunctionCall",
"src": "37295:118:40"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "37286:5:40",
"nodeType": "YulIdentifier",
"src": "37286:5:40"
}
]
},
{
"nativeSrc": "37422:16:40",
"nodeType": "YulVariableDeclaration",
"src": "37422:16:40",
"value": {
"name": "array",
"nativeSrc": "37433:5:40",
"nodeType": "YulIdentifier",
"src": "37433:5:40"
},
"variables": [
{
"name": "dst",
"nativeSrc": "37426:3:40",
"nodeType": "YulTypedName",
"src": "37426:3:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nativeSrc": "37455:5:40",
"nodeType": "YulIdentifier",
"src": "37455:5:40"
},
{
"name": "length",
"nativeSrc": "37462:6:40",
"nodeType": "YulIdentifier",
"src": "37462:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "37448:6:40",
"nodeType": "YulIdentifier",
"src": "37448:6:40"
},
"nativeSrc": "37448:21:40",
"nodeType": "YulFunctionCall",
"src": "37448:21:40"
},
"nativeSrc": "37448:21:40",
"nodeType": "YulExpressionStatement",
"src": "37448:21:40"
},
{
"nativeSrc": "37478:23:40",
"nodeType": "YulAssignment",
"src": "37478:23:40",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "37489:5:40",
"nodeType": "YulIdentifier",
"src": "37489:5:40"
},
{
"kind": "number",
"nativeSrc": "37496:4:40",
"nodeType": "YulLiteral",
"src": "37496:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "37485:3:40",
"nodeType": "YulIdentifier",
"src": "37485:3:40"
},
"nativeSrc": "37485:16:40",
"nodeType": "YulFunctionCall",
"src": "37485:16:40"
},
"variableNames": [
{
"name": "dst",
"nativeSrc": "37478:3:40",
"nodeType": "YulIdentifier",
"src": "37478:3:40"
}
]
},
{
"nativeSrc": "37511:44:40",
"nodeType": "YulVariableDeclaration",
"src": "37511:44:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "37529:6:40",
"nodeType": "YulIdentifier",
"src": "37529:6:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "37541:6:40",
"nodeType": "YulIdentifier",
"src": "37541:6:40"
},
{
"kind": "number",
"nativeSrc": "37549:4:40",
"nodeType": "YulLiteral",
"src": "37549:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "37537:3:40",
"nodeType": "YulIdentifier",
"src": "37537:3:40"
},
"nativeSrc": "37537:17:40",
"nodeType": "YulFunctionCall",
"src": "37537:17:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "37525:3:40",
"nodeType": "YulIdentifier",
"src": "37525:3:40"
},
"nativeSrc": "37525:30:40",
"nodeType": "YulFunctionCall",
"src": "37525:30:40"
},
"variables": [
{
"name": "srcEnd",
"nativeSrc": "37515:6:40",
"nodeType": "YulTypedName",
"src": "37515:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "37583:103:40",
"nodeType": "YulBlock",
"src": "37583:103:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nativeSrc": "37597:77:40",
"nodeType": "YulIdentifier",
"src": "37597:77:40"
},
"nativeSrc": "37597:79:40",
"nodeType": "YulFunctionCall",
"src": "37597:79:40"
},
"nativeSrc": "37597:79:40",
"nodeType": "YulExpressionStatement",
"src": "37597:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nativeSrc": "37570:6:40",
"nodeType": "YulIdentifier",
"src": "37570:6:40"
},
{
"name": "end",
"nativeSrc": "37578:3:40",
"nodeType": "YulIdentifier",
"src": "37578:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "37567:2:40",
"nodeType": "YulIdentifier",
"src": "37567:2:40"
},
"nativeSrc": "37567:15:40",
"nodeType": "YulFunctionCall",
"src": "37567:15:40"
},
"nativeSrc": "37564:122:40",
"nodeType": "YulIf",
"src": "37564:122:40"
},
{
"body": {
"nativeSrc": "37771:386:40",
"nodeType": "YulBlock",
"src": "37771:386:40",
"statements": [
{
"nativeSrc": "37786:36:40",
"nodeType": "YulVariableDeclaration",
"src": "37786:36:40",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "37818:3:40",
"nodeType": "YulIdentifier",
"src": "37818:3:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "37805:12:40",
"nodeType": "YulIdentifier",
"src": "37805:12:40"
},
"nativeSrc": "37805:17:40",
"nodeType": "YulFunctionCall",
"src": "37805:17:40"
},
"variables": [
{
"name": "innerOffset",
"nativeSrc": "37790:11:40",
"nodeType": "YulTypedName",
"src": "37790:11:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "37874:83:40",
"nodeType": "YulBlock",
"src": "37874:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "37876:77:40",
"nodeType": "YulIdentifier",
"src": "37876:77:40"
},
"nativeSrc": "37876:79:40",
"nodeType": "YulFunctionCall",
"src": "37876:79:40"
},
"nativeSrc": "37876:79:40",
"nodeType": "YulExpressionStatement",
"src": "37876:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "innerOffset",
"nativeSrc": "37841:11:40",
"nodeType": "YulIdentifier",
"src": "37841:11:40"
},
{
"kind": "number",
"nativeSrc": "37854:18:40",
"nodeType": "YulLiteral",
"src": "37854:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "37838:2:40",
"nodeType": "YulIdentifier",
"src": "37838:2:40"
},
"nativeSrc": "37838:35:40",
"nodeType": "YulFunctionCall",
"src": "37838:35:40"
},
"nativeSrc": "37835:122:40",
"nodeType": "YulIf",
"src": "37835:122:40"
},
{
"nativeSrc": "37970:42:40",
"nodeType": "YulVariableDeclaration",
"src": "37970:42:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "37992:6:40",
"nodeType": "YulIdentifier",
"src": "37992:6:40"
},
{
"name": "innerOffset",
"nativeSrc": "38000:11:40",
"nodeType": "YulIdentifier",
"src": "38000:11:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "37988:3:40",
"nodeType": "YulIdentifier",
"src": "37988:3:40"
},
"nativeSrc": "37988:24:40",
"nodeType": "YulFunctionCall",
"src": "37988:24:40"
},
"variables": [
{
"name": "elementPos",
"nativeSrc": "37974:10:40",
"nodeType": "YulTypedName",
"src": "37974:10:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nativeSrc": "38033:3:40",
"nodeType": "YulIdentifier",
"src": "38033:3:40"
},
{
"arguments": [
{
"name": "elementPos",
"nativeSrc": "38096:10:40",
"nodeType": "YulIdentifier",
"src": "38096:10:40"
},
{
"name": "end",
"nativeSrc": "38108:3:40",
"nodeType": "YulIdentifier",
"src": "38108:3:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_EnforcedOptionParam_$1932_memory_ptr",
"nativeSrc": "38038:57:40",
"nodeType": "YulIdentifier",
"src": "38038:57:40"
},
"nativeSrc": "38038:74:40",
"nodeType": "YulFunctionCall",
"src": "38038:74:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "38026:6:40",
"nodeType": "YulIdentifier",
"src": "38026:6:40"
},
"nativeSrc": "38026:87:40",
"nodeType": "YulFunctionCall",
"src": "38026:87:40"
},
"nativeSrc": "38026:87:40",
"nodeType": "YulExpressionStatement",
"src": "38026:87:40"
},
{
"nativeSrc": "38126:21:40",
"nodeType": "YulAssignment",
"src": "38126:21:40",
"value": {
"arguments": [
{
"name": "dst",
"nativeSrc": "38137:3:40",
"nodeType": "YulIdentifier",
"src": "38137:3:40"
},
{
"kind": "number",
"nativeSrc": "38142:4:40",
"nodeType": "YulLiteral",
"src": "38142:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "38133:3:40",
"nodeType": "YulIdentifier",
"src": "38133:3:40"
},
"nativeSrc": "38133:14:40",
"nodeType": "YulFunctionCall",
"src": "38133:14:40"
},
"variableNames": [
{
"name": "dst",
"nativeSrc": "38126:3:40",
"nodeType": "YulIdentifier",
"src": "38126:3:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nativeSrc": "37724:3:40",
"nodeType": "YulIdentifier",
"src": "37724:3:40"
},
{
"name": "srcEnd",
"nativeSrc": "37729:6:40",
"nodeType": "YulIdentifier",
"src": "37729:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "37721:2:40",
"nodeType": "YulIdentifier",
"src": "37721:2:40"
},
"nativeSrc": "37721:15:40",
"nodeType": "YulFunctionCall",
"src": "37721:15:40"
},
"nativeSrc": "37695:462:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "37737:25:40",
"nodeType": "YulBlock",
"src": "37737:25:40",
"statements": [
{
"nativeSrc": "37739:21:40",
"nodeType": "YulAssignment",
"src": "37739:21:40",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "37750:3:40",
"nodeType": "YulIdentifier",
"src": "37750:3:40"
},
{
"kind": "number",
"nativeSrc": "37755:4:40",
"nodeType": "YulLiteral",
"src": "37755:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "37746:3:40",
"nodeType": "YulIdentifier",
"src": "37746:3:40"
},
"nativeSrc": "37746:14:40",
"nodeType": "YulFunctionCall",
"src": "37746:14:40"
},
"variableNames": [
{
"name": "src",
"nativeSrc": "37739:3:40",
"nodeType": "YulIdentifier",
"src": "37739:3:40"
}
]
}
]
},
"pre": {
"nativeSrc": "37699:21:40",
"nodeType": "YulBlock",
"src": "37699:21:40",
"statements": [
{
"nativeSrc": "37701:17:40",
"nodeType": "YulVariableDeclaration",
"src": "37701:17:40",
"value": {
"name": "offset",
"nativeSrc": "37712:6:40",
"nodeType": "YulIdentifier",
"src": "37712:6:40"
},
"variables": [
{
"name": "src",
"nativeSrc": "37705:3:40",
"nodeType": "YulTypedName",
"src": "37705:3:40",
"type": ""
}
]
}
]
},
"src": "37695:462:40"
}
]
},
"name": "abi_decode_available_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "37137:1026:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "37246:6:40",
"nodeType": "YulTypedName",
"src": "37246:6:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "37254:6:40",
"nodeType": "YulTypedName",
"src": "37254:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "37262:3:40",
"nodeType": "YulTypedName",
"src": "37262:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "37270:5:40",
"nodeType": "YulTypedName",
"src": "37270:5:40",
"type": ""
}
],
"src": "37137:1026:40"
},
{
"body": {
"nativeSrc": "38372:225:40",
"nodeType": "YulBlock",
"src": "38372:225:40",
"statements": [
{
"nativeSrc": "38438:152:40",
"nodeType": "YulAssignment",
"src": "38438:152:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "38560:5:40",
"nodeType": "YulIdentifier",
"src": "38560:5:40"
},
{
"name": "length",
"nativeSrc": "38567:6:40",
"nodeType": "YulIdentifier",
"src": "38567:6:40"
},
{
"arguments": [],
"functionName": {
"name": "calldatasize",
"nativeSrc": "38575:12:40",
"nodeType": "YulIdentifier",
"src": "38575:12:40"
},
"nativeSrc": "38575:14:40",
"nodeType": "YulFunctionCall",
"src": "38575:14:40"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "38460:99:40",
"nodeType": "YulIdentifier",
"src": "38460:99:40"
},
"nativeSrc": "38460:130:40",
"nodeType": "YulFunctionCall",
"src": "38460:130:40"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "38438:9:40",
"nodeType": "YulIdentifier",
"src": "38438:9:40"
}
]
}
]
},
"name": "convert_array_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "38169:428:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "38343:5:40",
"nodeType": "YulTypedName",
"src": "38343:5:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "38350:6:40",
"nodeType": "YulTypedName",
"src": "38350:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "38361:9:40",
"nodeType": "YulTypedName",
"src": "38361:9:40",
"type": ""
}
],
"src": "38169:428:40"
},
{
"body": {
"nativeSrc": "38692:28:40",
"nodeType": "YulBlock",
"src": "38692:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "38709:1:40",
"nodeType": "YulLiteral",
"src": "38709:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "38712:1:40",
"nodeType": "YulLiteral",
"src": "38712:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "38702:6:40",
"nodeType": "YulIdentifier",
"src": "38702:6:40"
},
"nativeSrc": "38702:12:40",
"nodeType": "YulFunctionCall",
"src": "38702:12:40"
},
"nativeSrc": "38702:12:40",
"nodeType": "YulExpressionStatement",
"src": "38702:12:40"
}
]
},
"name": "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a",
"nativeSrc": "38603:117:40",
"nodeType": "YulFunctionDefinition",
"src": "38603:117:40"
},
{
"body": {
"nativeSrc": "38815:28:40",
"nodeType": "YulBlock",
"src": "38815:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "38832:1:40",
"nodeType": "YulLiteral",
"src": "38832:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "38835:1:40",
"nodeType": "YulLiteral",
"src": "38835:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "38825:6:40",
"nodeType": "YulIdentifier",
"src": "38825:6:40"
},
"nativeSrc": "38825:12:40",
"nodeType": "YulFunctionCall",
"src": "38825:12:40"
},
"nativeSrc": "38825:12:40",
"nodeType": "YulExpressionStatement",
"src": "38825:12:40"
}
]
},
"name": "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c",
"nativeSrc": "38726:117:40",
"nodeType": "YulFunctionDefinition",
"src": "38726:117:40"
},
{
"body": {
"nativeSrc": "38975:343:40",
"nodeType": "YulBlock",
"src": "38975:343:40",
"statements": [
{
"body": {
"nativeSrc": "39013:83:40",
"nodeType": "YulBlock",
"src": "39013:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a",
"nativeSrc": "39015:77:40",
"nodeType": "YulIdentifier",
"src": "39015:77:40"
},
"nativeSrc": "39015:79:40",
"nodeType": "YulFunctionCall",
"src": "39015:79:40"
},
"nativeSrc": "39015:79:40",
"nodeType": "YulExpressionStatement",
"src": "39015:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nativeSrc": "38991:10:40",
"nodeType": "YulIdentifier",
"src": "38991:10:40"
},
{
"name": "endIndex",
"nativeSrc": "39003:8:40",
"nodeType": "YulIdentifier",
"src": "39003:8:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "38988:2:40",
"nodeType": "YulIdentifier",
"src": "38988:2:40"
},
"nativeSrc": "38988:24:40",
"nodeType": "YulFunctionCall",
"src": "38988:24:40"
},
"nativeSrc": "38985:111:40",
"nodeType": "YulIf",
"src": "38985:111:40"
},
{
"body": {
"nativeSrc": "39129:83:40",
"nodeType": "YulBlock",
"src": "39129:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c",
"nativeSrc": "39131:77:40",
"nodeType": "YulIdentifier",
"src": "39131:77:40"
},
"nativeSrc": "39131:79:40",
"nodeType": "YulFunctionCall",
"src": "39131:79:40"
},
"nativeSrc": "39131:79:40",
"nodeType": "YulExpressionStatement",
"src": "39131:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "endIndex",
"nativeSrc": "39111:8:40",
"nodeType": "YulIdentifier",
"src": "39111:8:40"
},
{
"name": "length",
"nativeSrc": "39121:6:40",
"nodeType": "YulIdentifier",
"src": "39121:6:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "39108:2:40",
"nodeType": "YulIdentifier",
"src": "39108:2:40"
},
"nativeSrc": "39108:20:40",
"nodeType": "YulFunctionCall",
"src": "39108:20:40"
},
"nativeSrc": "39105:107:40",
"nodeType": "YulIf",
"src": "39105:107:40"
},
{
"nativeSrc": "39221:44:40",
"nodeType": "YulAssignment",
"src": "39221:44:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "39238:6:40",
"nodeType": "YulIdentifier",
"src": "39238:6:40"
},
{
"arguments": [
{
"name": "startIndex",
"nativeSrc": "39250:10:40",
"nodeType": "YulIdentifier",
"src": "39250:10:40"
},
{
"kind": "number",
"nativeSrc": "39262:1:40",
"nodeType": "YulLiteral",
"src": "39262:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "39246:3:40",
"nodeType": "YulIdentifier",
"src": "39246:3:40"
},
"nativeSrc": "39246:18:40",
"nodeType": "YulFunctionCall",
"src": "39246:18:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "39234:3:40",
"nodeType": "YulIdentifier",
"src": "39234:3:40"
},
"nativeSrc": "39234:31:40",
"nodeType": "YulFunctionCall",
"src": "39234:31:40"
},
"variableNames": [
{
"name": "offsetOut",
"nativeSrc": "39221:9:40",
"nodeType": "YulIdentifier",
"src": "39221:9:40"
}
]
},
{
"nativeSrc": "39274:38:40",
"nodeType": "YulAssignment",
"src": "39274:38:40",
"value": {
"arguments": [
{
"name": "endIndex",
"nativeSrc": "39291:8:40",
"nodeType": "YulIdentifier",
"src": "39291:8:40"
},
{
"name": "startIndex",
"nativeSrc": "39301:10:40",
"nodeType": "YulIdentifier",
"src": "39301:10:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "39287:3:40",
"nodeType": "YulIdentifier",
"src": "39287:3:40"
},
"nativeSrc": "39287:25:40",
"nodeType": "YulFunctionCall",
"src": "39287:25:40"
},
"variableNames": [
{
"name": "lengthOut",
"nativeSrc": "39274:9:40",
"nodeType": "YulIdentifier",
"src": "39274:9:40"
}
]
}
]
},
"name": "calldata_array_index_range_access_t_bytes_calldata_ptr",
"nativeSrc": "38849:469:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "38913:6:40",
"nodeType": "YulTypedName",
"src": "38913:6:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "38921:6:40",
"nodeType": "YulTypedName",
"src": "38921:6:40",
"type": ""
},
{
"name": "startIndex",
"nativeSrc": "38929:10:40",
"nodeType": "YulTypedName",
"src": "38929:10:40",
"type": ""
},
{
"name": "endIndex",
"nativeSrc": "38941:8:40",
"nodeType": "YulTypedName",
"src": "38941:8:40",
"type": ""
}
],
"returnVariables": [
{
"name": "offsetOut",
"nativeSrc": "38954:9:40",
"nodeType": "YulTypedName",
"src": "38954:9:40",
"type": ""
},
{
"name": "lengthOut",
"nativeSrc": "38965:9:40",
"nodeType": "YulTypedName",
"src": "38965:9:40",
"type": ""
}
],
"src": "38849:469:40"
},
{
"body": {
"nativeSrc": "39437:34:40",
"nodeType": "YulBlock",
"src": "39437:34:40",
"statements": [
{
"nativeSrc": "39447:18:40",
"nodeType": "YulAssignment",
"src": "39447:18:40",
"value": {
"name": "pos",
"nativeSrc": "39462:3:40",
"nodeType": "YulIdentifier",
"src": "39462:3:40"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "39447:11:40",
"nodeType": "YulIdentifier",
"src": "39447:11:40"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "39324:147:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "39409:3:40",
"nodeType": "YulTypedName",
"src": "39409:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "39414:6:40",
"nodeType": "YulTypedName",
"src": "39414:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "39425:11:40",
"nodeType": "YulTypedName",
"src": "39425:11:40",
"type": ""
}
],
"src": "39324:147:40"
},
{
"body": {
"nativeSrc": "39585:278:40",
"nodeType": "YulBlock",
"src": "39585:278:40",
"statements": [
{
"nativeSrc": "39595:52:40",
"nodeType": "YulVariableDeclaration",
"src": "39595:52:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "39641:5:40",
"nodeType": "YulIdentifier",
"src": "39641:5:40"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "39609:31:40",
"nodeType": "YulIdentifier",
"src": "39609:31:40"
},
"nativeSrc": "39609:38:40",
"nodeType": "YulFunctionCall",
"src": "39609:38:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "39599:6:40",
"nodeType": "YulTypedName",
"src": "39599:6:40",
"type": ""
}
]
},
{
"nativeSrc": "39656:95:40",
"nodeType": "YulAssignment",
"src": "39656:95:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "39739:3:40",
"nodeType": "YulIdentifier",
"src": "39739:3:40"
},
{
"name": "length",
"nativeSrc": "39744:6:40",
"nodeType": "YulIdentifier",
"src": "39744:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "39663:75:40",
"nodeType": "YulIdentifier",
"src": "39663:75:40"
},
"nativeSrc": "39663:88:40",
"nodeType": "YulFunctionCall",
"src": "39663:88:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "39656:3:40",
"nodeType": "YulIdentifier",
"src": "39656:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "39799:5:40",
"nodeType": "YulIdentifier",
"src": "39799:5:40"
},
{
"kind": "number",
"nativeSrc": "39806:4:40",
"nodeType": "YulLiteral",
"src": "39806:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "39795:3:40",
"nodeType": "YulIdentifier",
"src": "39795:3:40"
},
"nativeSrc": "39795:16:40",
"nodeType": "YulFunctionCall",
"src": "39795:16:40"
},
{
"name": "pos",
"nativeSrc": "39813:3:40",
"nodeType": "YulIdentifier",
"src": "39813:3:40"
},
{
"name": "length",
"nativeSrc": "39818:6:40",
"nodeType": "YulIdentifier",
"src": "39818:6:40"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "39760:34:40",
"nodeType": "YulIdentifier",
"src": "39760:34:40"
},
"nativeSrc": "39760:65:40",
"nodeType": "YulFunctionCall",
"src": "39760:65:40"
},
"nativeSrc": "39760:65:40",
"nodeType": "YulExpressionStatement",
"src": "39760:65:40"
},
{
"nativeSrc": "39834:23:40",
"nodeType": "YulAssignment",
"src": "39834:23:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "39845:3:40",
"nodeType": "YulIdentifier",
"src": "39845:3:40"
},
{
"name": "length",
"nativeSrc": "39850:6:40",
"nodeType": "YulIdentifier",
"src": "39850:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "39841:3:40",
"nodeType": "YulIdentifier",
"src": "39841:3:40"
},
"nativeSrc": "39841:16:40",
"nodeType": "YulFunctionCall",
"src": "39841:16:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "39834:3:40",
"nodeType": "YulIdentifier",
"src": "39834:3:40"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "39477:386:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "39566:5:40",
"nodeType": "YulTypedName",
"src": "39566:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "39573:3:40",
"nodeType": "YulTypedName",
"src": "39573:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "39581:3:40",
"nodeType": "YulTypedName",
"src": "39581:3:40",
"type": ""
}
],
"src": "39477:386:40"
},
{
"body": {
"nativeSrc": "40009:209:40",
"nodeType": "YulBlock",
"src": "40009:209:40",
"statements": [
{
"nativeSrc": "40019:95:40",
"nodeType": "YulAssignment",
"src": "40019:95:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "40102:3:40",
"nodeType": "YulIdentifier",
"src": "40102:3:40"
},
{
"name": "length",
"nativeSrc": "40107:6:40",
"nodeType": "YulIdentifier",
"src": "40107:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "40026:75:40",
"nodeType": "YulIdentifier",
"src": "40026:75:40"
},
"nativeSrc": "40026:88:40",
"nodeType": "YulFunctionCall",
"src": "40026:88:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "40019:3:40",
"nodeType": "YulIdentifier",
"src": "40019:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "40161:5:40",
"nodeType": "YulIdentifier",
"src": "40161:5:40"
},
{
"name": "pos",
"nativeSrc": "40168:3:40",
"nodeType": "YulIdentifier",
"src": "40168:3:40"
},
{
"name": "length",
"nativeSrc": "40173:6:40",
"nodeType": "YulIdentifier",
"src": "40173:6:40"
}
],
"functionName": {
"name": "copy_calldata_to_memory_with_cleanup",
"nativeSrc": "40124:36:40",
"nodeType": "YulIdentifier",
"src": "40124:36:40"
},
"nativeSrc": "40124:56:40",
"nodeType": "YulFunctionCall",
"src": "40124:56:40"
},
"nativeSrc": "40124:56:40",
"nodeType": "YulExpressionStatement",
"src": "40124:56:40"
},
{
"nativeSrc": "40189:23:40",
"nodeType": "YulAssignment",
"src": "40189:23:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "40200:3:40",
"nodeType": "YulIdentifier",
"src": "40200:3:40"
},
{
"name": "length",
"nativeSrc": "40205:6:40",
"nodeType": "YulIdentifier",
"src": "40205:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "40196:3:40",
"nodeType": "YulIdentifier",
"src": "40196:3:40"
},
"nativeSrc": "40196:16:40",
"nodeType": "YulFunctionCall",
"src": "40196:16:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "40189:3:40",
"nodeType": "YulIdentifier",
"src": "40189:3:40"
}
]
}
]
},
"name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "39891:327:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "39982:5:40",
"nodeType": "YulTypedName",
"src": "39982:5:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "39989:6:40",
"nodeType": "YulTypedName",
"src": "39989:6:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "39997:3:40",
"nodeType": "YulTypedName",
"src": "39997:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "40005:3:40",
"nodeType": "YulTypedName",
"src": "40005:3:40",
"type": ""
}
],
"src": "39891:327:40"
},
{
"body": {
"nativeSrc": "40420:257:40",
"nodeType": "YulBlock",
"src": "40420:257:40",
"statements": [
{
"nativeSrc": "40431:100:40",
"nodeType": "YulAssignment",
"src": "40431:100:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "40518:6:40",
"nodeType": "YulIdentifier",
"src": "40518:6:40"
},
{
"name": "pos",
"nativeSrc": "40527:3:40",
"nodeType": "YulIdentifier",
"src": "40527:3:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "40438:79:40",
"nodeType": "YulIdentifier",
"src": "40438:79:40"
},
"nativeSrc": "40438:93:40",
"nodeType": "YulFunctionCall",
"src": "40438:93:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "40431:3:40",
"nodeType": "YulIdentifier",
"src": "40431:3:40"
}
]
},
{
"nativeSrc": "40541:110:40",
"nodeType": "YulAssignment",
"src": "40541:110:40",
"value": {
"arguments": [
{
"name": "value1",
"nativeSrc": "40630:6:40",
"nodeType": "YulIdentifier",
"src": "40630:6:40"
},
{
"name": "value2",
"nativeSrc": "40638:6:40",
"nodeType": "YulIdentifier",
"src": "40638:6:40"
},
{
"name": "pos",
"nativeSrc": "40647:3:40",
"nodeType": "YulIdentifier",
"src": "40647:3:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "40548:81:40",
"nodeType": "YulIdentifier",
"src": "40548:81:40"
},
"nativeSrc": "40548:103:40",
"nodeType": "YulFunctionCall",
"src": "40548:103:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "40541:3:40",
"nodeType": "YulIdentifier",
"src": "40541:3:40"
}
]
},
{
"nativeSrc": "40661:10:40",
"nodeType": "YulAssignment",
"src": "40661:10:40",
"value": {
"name": "pos",
"nativeSrc": "40668:3:40",
"nodeType": "YulIdentifier",
"src": "40668:3:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "40661:3:40",
"nodeType": "YulIdentifier",
"src": "40661:3:40"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "40224:453:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "40383:3:40",
"nodeType": "YulTypedName",
"src": "40383:3:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "40389:6:40",
"nodeType": "YulTypedName",
"src": "40389:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "40397:6:40",
"nodeType": "YulTypedName",
"src": "40397:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "40405:6:40",
"nodeType": "YulTypedName",
"src": "40405:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "40416:3:40",
"nodeType": "YulTypedName",
"src": "40416:3:40",
"type": ""
}
],
"src": "40224:453:40"
},
{
"body": {
"nativeSrc": "40805:214:40",
"nodeType": "YulBlock",
"src": "40805:214:40",
"statements": [
{
"nativeSrc": "40815:77:40",
"nodeType": "YulAssignment",
"src": "40815:77:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "40880:3:40",
"nodeType": "YulIdentifier",
"src": "40880:3:40"
},
{
"name": "length",
"nativeSrc": "40885:6:40",
"nodeType": "YulIdentifier",
"src": "40885:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nativeSrc": "40822:57:40",
"nodeType": "YulIdentifier",
"src": "40822:57:40"
},
"nativeSrc": "40822:70:40",
"nodeType": "YulFunctionCall",
"src": "40822:70:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "40815:3:40",
"nodeType": "YulIdentifier",
"src": "40815:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "40939:5:40",
"nodeType": "YulIdentifier",
"src": "40939:5:40"
},
{
"name": "pos",
"nativeSrc": "40946:3:40",
"nodeType": "YulIdentifier",
"src": "40946:3:40"
},
{
"name": "length",
"nativeSrc": "40951:6:40",
"nodeType": "YulIdentifier",
"src": "40951:6:40"
}
],
"functionName": {
"name": "copy_calldata_to_memory_with_cleanup",
"nativeSrc": "40902:36:40",
"nodeType": "YulIdentifier",
"src": "40902:36:40"
},
"nativeSrc": "40902:56:40",
"nodeType": "YulFunctionCall",
"src": "40902:56:40"
},
"nativeSrc": "40902:56:40",
"nodeType": "YulExpressionStatement",
"src": "40902:56:40"
},
{
"nativeSrc": "40967:46:40",
"nodeType": "YulAssignment",
"src": "40967:46:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "40978:3:40",
"nodeType": "YulIdentifier",
"src": "40978:3:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "41005:6:40",
"nodeType": "YulIdentifier",
"src": "41005:6:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "40983:21:40",
"nodeType": "YulIdentifier",
"src": "40983:21:40"
},
"nativeSrc": "40983:29:40",
"nodeType": "YulFunctionCall",
"src": "40983:29:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "40974:3:40",
"nodeType": "YulIdentifier",
"src": "40974:3:40"
},
"nativeSrc": "40974:39:40",
"nodeType": "YulFunctionCall",
"src": "40974:39:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "40967:3:40",
"nodeType": "YulIdentifier",
"src": "40967:3:40"
}
]
}
]
},
"name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "40705:314:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "40778:5:40",
"nodeType": "YulTypedName",
"src": "40778:5:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "40785:6:40",
"nodeType": "YulTypedName",
"src": "40785:6:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "40793:3:40",
"nodeType": "YulTypedName",
"src": "40793:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "40801:3:40",
"nodeType": "YulTypedName",
"src": "40801:3:40",
"type": ""
}
],
"src": "40705:314:40"
},
{
"body": {
"nativeSrc": "41151:203:40",
"nodeType": "YulBlock",
"src": "41151:203:40",
"statements": [
{
"nativeSrc": "41161:26:40",
"nodeType": "YulAssignment",
"src": "41161:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "41173:9:40",
"nodeType": "YulIdentifier",
"src": "41173:9:40"
},
{
"kind": "number",
"nativeSrc": "41184:2:40",
"nodeType": "YulLiteral",
"src": "41184:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "41169:3:40",
"nodeType": "YulIdentifier",
"src": "41169:3:40"
},
"nativeSrc": "41169:18:40",
"nodeType": "YulFunctionCall",
"src": "41169:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "41161:4:40",
"nodeType": "YulIdentifier",
"src": "41161:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "41208:9:40",
"nodeType": "YulIdentifier",
"src": "41208:9:40"
},
{
"kind": "number",
"nativeSrc": "41219:1:40",
"nodeType": "YulLiteral",
"src": "41219:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "41204:3:40",
"nodeType": "YulIdentifier",
"src": "41204:3:40"
},
"nativeSrc": "41204:17:40",
"nodeType": "YulFunctionCall",
"src": "41204:17:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "41227:4:40",
"nodeType": "YulIdentifier",
"src": "41227:4:40"
},
{
"name": "headStart",
"nativeSrc": "41233:9:40",
"nodeType": "YulIdentifier",
"src": "41233:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "41223:3:40",
"nodeType": "YulIdentifier",
"src": "41223:3:40"
},
"nativeSrc": "41223:20:40",
"nodeType": "YulFunctionCall",
"src": "41223:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "41197:6:40",
"nodeType": "YulIdentifier",
"src": "41197:6:40"
},
"nativeSrc": "41197:47:40",
"nodeType": "YulFunctionCall",
"src": "41197:47:40"
},
"nativeSrc": "41197:47:40",
"nodeType": "YulExpressionStatement",
"src": "41197:47:40"
},
{
"nativeSrc": "41253:94:40",
"nodeType": "YulAssignment",
"src": "41253:94:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "41325:6:40",
"nodeType": "YulIdentifier",
"src": "41325:6:40"
},
{
"name": "value1",
"nativeSrc": "41333:6:40",
"nodeType": "YulIdentifier",
"src": "41333:6:40"
},
{
"name": "tail",
"nativeSrc": "41342:4:40",
"nodeType": "YulIdentifier",
"src": "41342:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "41261:63:40",
"nodeType": "YulIdentifier",
"src": "41261:63:40"
},
"nativeSrc": "41261:86:40",
"nodeType": "YulFunctionCall",
"src": "41261:86:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "41253:4:40",
"nodeType": "YulIdentifier",
"src": "41253:4:40"
}
]
}
]
},
"name": "abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed",
"nativeSrc": "41025:329:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "41115:9:40",
"nodeType": "YulTypedName",
"src": "41115:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "41127:6:40",
"nodeType": "YulTypedName",
"src": "41127:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "41135:6:40",
"nodeType": "YulTypedName",
"src": "41135:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "41146:4:40",
"nodeType": "YulTypedName",
"src": "41146:4:40",
"type": ""
}
],
"src": "41025:329:40"
},
{
"body": {
"nativeSrc": "41388:152:40",
"nodeType": "YulBlock",
"src": "41388:152:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "41405:1:40",
"nodeType": "YulLiteral",
"src": "41405:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "41408:77:40",
"nodeType": "YulLiteral",
"src": "41408:77:40",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "41398:6:40",
"nodeType": "YulIdentifier",
"src": "41398:6:40"
},
"nativeSrc": "41398:88:40",
"nodeType": "YulFunctionCall",
"src": "41398:88:40"
},
"nativeSrc": "41398:88:40",
"nodeType": "YulExpressionStatement",
"src": "41398:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "41502:1:40",
"nodeType": "YulLiteral",
"src": "41502:1:40",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "41505:4:40",
"nodeType": "YulLiteral",
"src": "41505:4:40",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "41495:6:40",
"nodeType": "YulIdentifier",
"src": "41495:6:40"
},
"nativeSrc": "41495:15:40",
"nodeType": "YulFunctionCall",
"src": "41495:15:40"
},
"nativeSrc": "41495:15:40",
"nodeType": "YulExpressionStatement",
"src": "41495:15:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "41526:1:40",
"nodeType": "YulLiteral",
"src": "41526:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "41529:4:40",
"nodeType": "YulLiteral",
"src": "41529:4:40",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "41519:6:40",
"nodeType": "YulIdentifier",
"src": "41519:6:40"
},
"nativeSrc": "41519:15:40",
"nodeType": "YulFunctionCall",
"src": "41519:15:40"
},
"nativeSrc": "41519:15:40",
"nodeType": "YulExpressionStatement",
"src": "41519:15:40"
}
]
},
"name": "panic_error_0x32",
"nativeSrc": "41360:180:40",
"nodeType": "YulFunctionDefinition",
"src": "41360:180:40"
},
{
"body": {
"nativeSrc": "41635:28:40",
"nodeType": "YulBlock",
"src": "41635:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "41652:1:40",
"nodeType": "YulLiteral",
"src": "41652:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "41655:1:40",
"nodeType": "YulLiteral",
"src": "41655:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "41645:6:40",
"nodeType": "YulIdentifier",
"src": "41645:6:40"
},
"nativeSrc": "41645:12:40",
"nodeType": "YulFunctionCall",
"src": "41645:12:40"
},
"nativeSrc": "41645:12:40",
"nodeType": "YulExpressionStatement",
"src": "41645:12:40"
}
]
},
"name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad",
"nativeSrc": "41546:117:40",
"nodeType": "YulFunctionDefinition",
"src": "41546:117:40"
},
{
"body": {
"nativeSrc": "41758:28:40",
"nodeType": "YulBlock",
"src": "41758:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "41775:1:40",
"nodeType": "YulLiteral",
"src": "41775:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "41778:1:40",
"nodeType": "YulLiteral",
"src": "41778:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "41768:6:40",
"nodeType": "YulIdentifier",
"src": "41768:6:40"
},
"nativeSrc": "41768:12:40",
"nodeType": "YulFunctionCall",
"src": "41768:12:40"
},
"nativeSrc": "41768:12:40",
"nodeType": "YulExpressionStatement",
"src": "41768:12:40"
}
]
},
"name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a",
"nativeSrc": "41669:117:40",
"nodeType": "YulFunctionDefinition",
"src": "41669:117:40"
},
{
"body": {
"nativeSrc": "41881:28:40",
"nodeType": "YulBlock",
"src": "41881:28:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "41898:1:40",
"nodeType": "YulLiteral",
"src": "41898:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "41901:1:40",
"nodeType": "YulLiteral",
"src": "41901:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "41891:6:40",
"nodeType": "YulIdentifier",
"src": "41891:6:40"
},
"nativeSrc": "41891:12:40",
"nodeType": "YulFunctionCall",
"src": "41891:12:40"
},
"nativeSrc": "41891:12:40",
"nodeType": "YulExpressionStatement",
"src": "41891:12:40"
}
]
},
"name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e",
"nativeSrc": "41792:117:40",
"nodeType": "YulFunctionDefinition",
"src": "41792:117:40"
},
{
"body": {
"nativeSrc": "42019:297:40",
"nodeType": "YulBlock",
"src": "42019:297:40",
"statements": [
{
"nativeSrc": "42029:51:40",
"nodeType": "YulVariableDeclaration",
"src": "42029:51:40",
"value": {
"arguments": [
{
"name": "ptr_to_tail",
"nativeSrc": "42068:11:40",
"nodeType": "YulIdentifier",
"src": "42068:11:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "42055:12:40",
"nodeType": "YulIdentifier",
"src": "42055:12:40"
},
"nativeSrc": "42055:25:40",
"nodeType": "YulFunctionCall",
"src": "42055:25:40"
},
"variables": [
{
"name": "rel_offset_of_tail",
"nativeSrc": "42033:18:40",
"nodeType": "YulTypedName",
"src": "42033:18:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "42176:83:40",
"nodeType": "YulBlock",
"src": "42176:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad",
"nativeSrc": "42178:77:40",
"nodeType": "YulIdentifier",
"src": "42178:77:40"
},
"nativeSrc": "42178:79:40",
"nodeType": "YulFunctionCall",
"src": "42178:79:40"
},
"nativeSrc": "42178:79:40",
"nodeType": "YulExpressionStatement",
"src": "42178:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "rel_offset_of_tail",
"nativeSrc": "42103:18:40",
"nodeType": "YulIdentifier",
"src": "42103:18:40"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [],
"functionName": {
"name": "calldatasize",
"nativeSrc": "42131:12:40",
"nodeType": "YulIdentifier",
"src": "42131:12:40"
},
"nativeSrc": "42131:14:40",
"nodeType": "YulFunctionCall",
"src": "42131:14:40"
},
{
"name": "base_ref",
"nativeSrc": "42147:8:40",
"nodeType": "YulIdentifier",
"src": "42147:8:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "42127:3:40",
"nodeType": "YulIdentifier",
"src": "42127:3:40"
},
"nativeSrc": "42127:29:40",
"nodeType": "YulFunctionCall",
"src": "42127:29:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "42162:6:40",
"nodeType": "YulLiteral",
"src": "42162:6:40",
"type": "",
"value": "0x0140"
},
{
"kind": "number",
"nativeSrc": "42170:1:40",
"nodeType": "YulLiteral",
"src": "42170:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "42158:3:40",
"nodeType": "YulIdentifier",
"src": "42158:3:40"
},
"nativeSrc": "42158:14:40",
"nodeType": "YulFunctionCall",
"src": "42158:14:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "42123:3:40",
"nodeType": "YulIdentifier",
"src": "42123:3:40"
},
"nativeSrc": "42123:50:40",
"nodeType": "YulFunctionCall",
"src": "42123:50:40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "42099:3:40",
"nodeType": "YulIdentifier",
"src": "42099:3:40"
},
"nativeSrc": "42099:75:40",
"nodeType": "YulFunctionCall",
"src": "42099:75:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "42092:6:40",
"nodeType": "YulIdentifier",
"src": "42092:6:40"
},
"nativeSrc": "42092:83:40",
"nodeType": "YulFunctionCall",
"src": "42092:83:40"
},
"nativeSrc": "42089:170:40",
"nodeType": "YulIf",
"src": "42089:170:40"
},
{
"nativeSrc": "42268:41:40",
"nodeType": "YulAssignment",
"src": "42268:41:40",
"value": {
"arguments": [
{
"name": "base_ref",
"nativeSrc": "42280:8:40",
"nodeType": "YulIdentifier",
"src": "42280:8:40"
},
{
"name": "rel_offset_of_tail",
"nativeSrc": "42290:18:40",
"nodeType": "YulIdentifier",
"src": "42290:18:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "42276:3:40",
"nodeType": "YulIdentifier",
"src": "42276:3:40"
},
"nativeSrc": "42276:33:40",
"nodeType": "YulFunctionCall",
"src": "42276:33:40"
},
"variableNames": [
{
"name": "addr",
"nativeSrc": "42268:4:40",
"nodeType": "YulIdentifier",
"src": "42268:4:40"
}
]
}
]
},
"name": "access_calldata_tail_t_struct$_InboundPacket_$2486_calldata_ptr",
"nativeSrc": "41915:401:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "base_ref",
"nativeSrc": "41988:8:40",
"nodeType": "YulTypedName",
"src": "41988:8:40",
"type": ""
},
{
"name": "ptr_to_tail",
"nativeSrc": "41998:11:40",
"nodeType": "YulTypedName",
"src": "41998:11:40",
"type": ""
}
],
"returnVariables": [
{
"name": "addr",
"nativeSrc": "42014:4:40",
"nodeType": "YulTypedName",
"src": "42014:4:40",
"type": ""
}
],
"src": "41915:401:40"
},
{
"body": {
"nativeSrc": "42412:634:40",
"nodeType": "YulBlock",
"src": "42412:634:40",
"statements": [
{
"nativeSrc": "42422:51:40",
"nodeType": "YulVariableDeclaration",
"src": "42422:51:40",
"value": {
"arguments": [
{
"name": "ptr_to_tail",
"nativeSrc": "42461:11:40",
"nodeType": "YulIdentifier",
"src": "42461:11:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "42448:12:40",
"nodeType": "YulIdentifier",
"src": "42448:12:40"
},
"nativeSrc": "42448:25:40",
"nodeType": "YulFunctionCall",
"src": "42448:25:40"
},
"variables": [
{
"name": "rel_offset_of_tail",
"nativeSrc": "42426:18:40",
"nodeType": "YulTypedName",
"src": "42426:18:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "42567:83:40",
"nodeType": "YulBlock",
"src": "42567:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad",
"nativeSrc": "42569:77:40",
"nodeType": "YulIdentifier",
"src": "42569:77:40"
},
"nativeSrc": "42569:79:40",
"nodeType": "YulFunctionCall",
"src": "42569:79:40"
},
"nativeSrc": "42569:79:40",
"nodeType": "YulExpressionStatement",
"src": "42569:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "rel_offset_of_tail",
"nativeSrc": "42496:18:40",
"nodeType": "YulIdentifier",
"src": "42496:18:40"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [],
"functionName": {
"name": "calldatasize",
"nativeSrc": "42524:12:40",
"nodeType": "YulIdentifier",
"src": "42524:12:40"
},
"nativeSrc": "42524:14:40",
"nodeType": "YulFunctionCall",
"src": "42524:14:40"
},
{
"name": "base_ref",
"nativeSrc": "42540:8:40",
"nodeType": "YulIdentifier",
"src": "42540:8:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "42520:3:40",
"nodeType": "YulIdentifier",
"src": "42520:3:40"
},
"nativeSrc": "42520:29:40",
"nodeType": "YulFunctionCall",
"src": "42520:29:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "42555:4:40",
"nodeType": "YulLiteral",
"src": "42555:4:40",
"type": "",
"value": "0x20"
},
{
"kind": "number",
"nativeSrc": "42561:1:40",
"nodeType": "YulLiteral",
"src": "42561:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "42551:3:40",
"nodeType": "YulIdentifier",
"src": "42551:3:40"
},
"nativeSrc": "42551:12:40",
"nodeType": "YulFunctionCall",
"src": "42551:12:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "42516:3:40",
"nodeType": "YulIdentifier",
"src": "42516:3:40"
},
"nativeSrc": "42516:48:40",
"nodeType": "YulFunctionCall",
"src": "42516:48:40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "42492:3:40",
"nodeType": "YulIdentifier",
"src": "42492:3:40"
},
"nativeSrc": "42492:73:40",
"nodeType": "YulFunctionCall",
"src": "42492:73:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "42485:6:40",
"nodeType": "YulIdentifier",
"src": "42485:6:40"
},
"nativeSrc": "42485:81:40",
"nodeType": "YulFunctionCall",
"src": "42485:81:40"
},
"nativeSrc": "42482:168:40",
"nodeType": "YulIf",
"src": "42482:168:40"
},
{
"nativeSrc": "42659:41:40",
"nodeType": "YulAssignment",
"src": "42659:41:40",
"value": {
"arguments": [
{
"name": "base_ref",
"nativeSrc": "42671:8:40",
"nodeType": "YulIdentifier",
"src": "42671:8:40"
},
{
"name": "rel_offset_of_tail",
"nativeSrc": "42681:18:40",
"nodeType": "YulIdentifier",
"src": "42681:18:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "42667:3:40",
"nodeType": "YulIdentifier",
"src": "42667:3:40"
},
"nativeSrc": "42667:33:40",
"nodeType": "YulFunctionCall",
"src": "42667:33:40"
},
"variableNames": [
{
"name": "addr",
"nativeSrc": "42659:4:40",
"nodeType": "YulIdentifier",
"src": "42659:4:40"
}
]
},
{
"nativeSrc": "42710:28:40",
"nodeType": "YulAssignment",
"src": "42710:28:40",
"value": {
"arguments": [
{
"name": "addr",
"nativeSrc": "42733:4:40",
"nodeType": "YulIdentifier",
"src": "42733:4:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "42720:12:40",
"nodeType": "YulIdentifier",
"src": "42720:12:40"
},
"nativeSrc": "42720:18:40",
"nodeType": "YulFunctionCall",
"src": "42720:18:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "42710:6:40",
"nodeType": "YulIdentifier",
"src": "42710:6:40"
}
]
},
{
"body": {
"nativeSrc": "42781:83:40",
"nodeType": "YulBlock",
"src": "42781:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a",
"nativeSrc": "42783:77:40",
"nodeType": "YulIdentifier",
"src": "42783:77:40"
},
"nativeSrc": "42783:79:40",
"nodeType": "YulFunctionCall",
"src": "42783:79:40"
},
"nativeSrc": "42783:79:40",
"nodeType": "YulExpressionStatement",
"src": "42783:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "42753:6:40",
"nodeType": "YulIdentifier",
"src": "42753:6:40"
},
{
"kind": "number",
"nativeSrc": "42761:18:40",
"nodeType": "YulLiteral",
"src": "42761:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "42750:2:40",
"nodeType": "YulIdentifier",
"src": "42750:2:40"
},
"nativeSrc": "42750:30:40",
"nodeType": "YulFunctionCall",
"src": "42750:30:40"
},
"nativeSrc": "42747:117:40",
"nodeType": "YulIf",
"src": "42747:117:40"
},
{
"nativeSrc": "42873:21:40",
"nodeType": "YulAssignment",
"src": "42873:21:40",
"value": {
"arguments": [
{
"name": "addr",
"nativeSrc": "42885:4:40",
"nodeType": "YulIdentifier",
"src": "42885:4:40"
},
{
"kind": "number",
"nativeSrc": "42891:2:40",
"nodeType": "YulLiteral",
"src": "42891:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "42881:3:40",
"nodeType": "YulIdentifier",
"src": "42881:3:40"
},
"nativeSrc": "42881:13:40",
"nodeType": "YulFunctionCall",
"src": "42881:13:40"
},
"variableNames": [
{
"name": "addr",
"nativeSrc": "42873:4:40",
"nodeType": "YulIdentifier",
"src": "42873:4:40"
}
]
},
{
"body": {
"nativeSrc": "42956:83:40",
"nodeType": "YulBlock",
"src": "42956:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e",
"nativeSrc": "42958:77:40",
"nodeType": "YulIdentifier",
"src": "42958:77:40"
},
"nativeSrc": "42958:79:40",
"nodeType": "YulFunctionCall",
"src": "42958:79:40"
},
"nativeSrc": "42958:79:40",
"nodeType": "YulExpressionStatement",
"src": "42958:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "addr",
"nativeSrc": "42910:4:40",
"nodeType": "YulIdentifier",
"src": "42910:4:40"
},
{
"arguments": [
{
"arguments": [],
"functionName": {
"name": "calldatasize",
"nativeSrc": "42920:12:40",
"nodeType": "YulIdentifier",
"src": "42920:12:40"
},
"nativeSrc": "42920:14:40",
"nodeType": "YulFunctionCall",
"src": "42920:14:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "42940:6:40",
"nodeType": "YulIdentifier",
"src": "42940:6:40"
},
{
"kind": "number",
"nativeSrc": "42948:4:40",
"nodeType": "YulLiteral",
"src": "42948:4:40",
"type": "",
"value": "0x01"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "42936:3:40",
"nodeType": "YulIdentifier",
"src": "42936:3:40"
},
"nativeSrc": "42936:17:40",
"nodeType": "YulFunctionCall",
"src": "42936:17:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "42916:3:40",
"nodeType": "YulIdentifier",
"src": "42916:3:40"
},
"nativeSrc": "42916:38:40",
"nodeType": "YulFunctionCall",
"src": "42916:38:40"
}
],
"functionName": {
"name": "sgt",
"nativeSrc": "42906:3:40",
"nodeType": "YulIdentifier",
"src": "42906:3:40"
},
"nativeSrc": "42906:49:40",
"nodeType": "YulFunctionCall",
"src": "42906:49:40"
},
"nativeSrc": "42903:136:40",
"nodeType": "YulIf",
"src": "42903:136:40"
}
]
},
"name": "access_calldata_tail_t_bytes_calldata_ptr",
"nativeSrc": "42322:724:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "base_ref",
"nativeSrc": "42373:8:40",
"nodeType": "YulTypedName",
"src": "42373:8:40",
"type": ""
},
{
"name": "ptr_to_tail",
"nativeSrc": "42383:11:40",
"nodeType": "YulTypedName",
"src": "42383:11:40",
"type": ""
}
],
"returnVariables": [
{
"name": "addr",
"nativeSrc": "42399:4:40",
"nodeType": "YulTypedName",
"src": "42399:4:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "42405:6:40",
"nodeType": "YulTypedName",
"src": "42405:6:40",
"type": ""
}
],
"src": "42322:724:40"
},
{
"body": {
"nativeSrc": "43109:63:40",
"nodeType": "YulBlock",
"src": "43109:63:40",
"statements": [
{
"nativeSrc": "43119:47:40",
"nodeType": "YulAssignment",
"src": "43119:47:40",
"value": {
"arguments": [
{
"name": "ptr",
"nativeSrc": "43148:3:40",
"nodeType": "YulIdentifier",
"src": "43148:3:40"
},
{
"arguments": [
{
"name": "ptr",
"nativeSrc": "43157:3:40",
"nodeType": "YulIdentifier",
"src": "43157:3:40"
},
{
"kind": "number",
"nativeSrc": "43162:2:40",
"nodeType": "YulLiteral",
"src": "43162:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "43153:3:40",
"nodeType": "YulIdentifier",
"src": "43153:3:40"
},
"nativeSrc": "43153:12:40",
"nodeType": "YulFunctionCall",
"src": "43153:12:40"
}
],
"functionName": {
"name": "abi_decode_t_uint32",
"nativeSrc": "43128:19:40",
"nodeType": "YulIdentifier",
"src": "43128:19:40"
},
"nativeSrc": "43128:38:40",
"nodeType": "YulFunctionCall",
"src": "43128:38:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "43119:5:40",
"nodeType": "YulIdentifier",
"src": "43119:5:40"
}
]
}
]
},
"name": "calldata_access_t_uint32",
"nativeSrc": "43052:120:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "baseRef",
"nativeSrc": "43086:7:40",
"nodeType": "YulTypedName",
"src": "43086:7:40",
"type": ""
},
{
"name": "ptr",
"nativeSrc": "43095:3:40",
"nodeType": "YulTypedName",
"src": "43095:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "43103:5:40",
"nodeType": "YulTypedName",
"src": "43103:5:40",
"type": ""
}
],
"src": "43052:120:40"
},
{
"body": {
"nativeSrc": "43231:52:40",
"nodeType": "YulBlock",
"src": "43231:52:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "43248:3:40",
"nodeType": "YulIdentifier",
"src": "43248:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "43270:5:40",
"nodeType": "YulIdentifier",
"src": "43270:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint32",
"nativeSrc": "43253:16:40",
"nodeType": "YulIdentifier",
"src": "43253:16:40"
},
"nativeSrc": "43253:23:40",
"nodeType": "YulFunctionCall",
"src": "43253:23:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "43241:6:40",
"nodeType": "YulIdentifier",
"src": "43241:6:40"
},
"nativeSrc": "43241:36:40",
"nodeType": "YulFunctionCall",
"src": "43241:36:40"
},
"nativeSrc": "43241:36:40",
"nodeType": "YulExpressionStatement",
"src": "43241:36:40"
}
]
},
"name": "abi_encode_t_uint32_to_t_uint32",
"nativeSrc": "43178:105:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "43219:5:40",
"nodeType": "YulTypedName",
"src": "43219:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "43226:3:40",
"nodeType": "YulTypedName",
"src": "43226:3:40",
"type": ""
}
],
"src": "43178:105:40"
},
{
"body": {
"nativeSrc": "43347:64:40",
"nodeType": "YulBlock",
"src": "43347:64:40",
"statements": [
{
"nativeSrc": "43357:48:40",
"nodeType": "YulAssignment",
"src": "43357:48:40",
"value": {
"arguments": [
{
"name": "ptr",
"nativeSrc": "43387:3:40",
"nodeType": "YulIdentifier",
"src": "43387:3:40"
},
{
"arguments": [
{
"name": "ptr",
"nativeSrc": "43396:3:40",
"nodeType": "YulIdentifier",
"src": "43396:3:40"
},
{
"kind": "number",
"nativeSrc": "43401:2:40",
"nodeType": "YulLiteral",
"src": "43401:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "43392:3:40",
"nodeType": "YulIdentifier",
"src": "43392:3:40"
},
"nativeSrc": "43392:12:40",
"nodeType": "YulFunctionCall",
"src": "43392:12:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nativeSrc": "43366:20:40",
"nodeType": "YulIdentifier",
"src": "43366:20:40"
},
"nativeSrc": "43366:39:40",
"nodeType": "YulFunctionCall",
"src": "43366:39:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "43357:5:40",
"nodeType": "YulIdentifier",
"src": "43357:5:40"
}
]
}
]
},
"name": "calldata_access_t_bytes32",
"nativeSrc": "43289:122:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "baseRef",
"nativeSrc": "43324:7:40",
"nodeType": "YulTypedName",
"src": "43324:7:40",
"type": ""
},
{
"name": "ptr",
"nativeSrc": "43333:3:40",
"nodeType": "YulTypedName",
"src": "43333:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "43341:5:40",
"nodeType": "YulTypedName",
"src": "43341:5:40",
"type": ""
}
],
"src": "43289:122:40"
},
{
"body": {
"nativeSrc": "43459:78:40",
"nodeType": "YulBlock",
"src": "43459:78:40",
"statements": [
{
"body": {
"nativeSrc": "43515:16:40",
"nodeType": "YulBlock",
"src": "43515:16:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "43524:1:40",
"nodeType": "YulLiteral",
"src": "43524:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "43527:1:40",
"nodeType": "YulLiteral",
"src": "43527:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "43517:6:40",
"nodeType": "YulIdentifier",
"src": "43517:6:40"
},
"nativeSrc": "43517:12:40",
"nodeType": "YulFunctionCall",
"src": "43517:12:40"
},
"nativeSrc": "43517:12:40",
"nodeType": "YulExpressionStatement",
"src": "43517:12:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "43482:5:40",
"nodeType": "YulIdentifier",
"src": "43482:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "43506:5:40",
"nodeType": "YulIdentifier",
"src": "43506:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint64",
"nativeSrc": "43489:16:40",
"nodeType": "YulIdentifier",
"src": "43489:16:40"
},
"nativeSrc": "43489:23:40",
"nodeType": "YulFunctionCall",
"src": "43489:23:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "43479:2:40",
"nodeType": "YulIdentifier",
"src": "43479:2:40"
},
"nativeSrc": "43479:34:40",
"nodeType": "YulFunctionCall",
"src": "43479:34:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "43472:6:40",
"nodeType": "YulIdentifier",
"src": "43472:6:40"
},
"nativeSrc": "43472:42:40",
"nodeType": "YulFunctionCall",
"src": "43472:42:40"
},
"nativeSrc": "43469:62:40",
"nodeType": "YulIf",
"src": "43469:62:40"
}
]
},
"name": "validator_revert_t_uint64",
"nativeSrc": "43417:120:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "43452:5:40",
"nodeType": "YulTypedName",
"src": "43452:5:40",
"type": ""
}
],
"src": "43417:120:40"
},
{
"body": {
"nativeSrc": "43594:86:40",
"nodeType": "YulBlock",
"src": "43594:86:40",
"statements": [
{
"nativeSrc": "43604:29:40",
"nodeType": "YulAssignment",
"src": "43604:29:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "43626:6:40",
"nodeType": "YulIdentifier",
"src": "43626:6:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "43613:12:40",
"nodeType": "YulIdentifier",
"src": "43613:12:40"
},
"nativeSrc": "43613:20:40",
"nodeType": "YulFunctionCall",
"src": "43613:20:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "43604:5:40",
"nodeType": "YulIdentifier",
"src": "43604:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "43668:5:40",
"nodeType": "YulIdentifier",
"src": "43668:5:40"
}
],
"functionName": {
"name": "validator_revert_t_uint64",
"nativeSrc": "43642:25:40",
"nodeType": "YulIdentifier",
"src": "43642:25:40"
},
"nativeSrc": "43642:32:40",
"nodeType": "YulFunctionCall",
"src": "43642:32:40"
},
"nativeSrc": "43642:32:40",
"nodeType": "YulExpressionStatement",
"src": "43642:32:40"
}
]
},
"name": "abi_decode_t_uint64",
"nativeSrc": "43543:137:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "43572:6:40",
"nodeType": "YulTypedName",
"src": "43572:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "43580:3:40",
"nodeType": "YulTypedName",
"src": "43580:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "43588:5:40",
"nodeType": "YulTypedName",
"src": "43588:5:40",
"type": ""
}
],
"src": "43543:137:40"
},
{
"body": {
"nativeSrc": "43743:63:40",
"nodeType": "YulBlock",
"src": "43743:63:40",
"statements": [
{
"nativeSrc": "43753:47:40",
"nodeType": "YulAssignment",
"src": "43753:47:40",
"value": {
"arguments": [
{
"name": "ptr",
"nativeSrc": "43782:3:40",
"nodeType": "YulIdentifier",
"src": "43782:3:40"
},
{
"arguments": [
{
"name": "ptr",
"nativeSrc": "43791:3:40",
"nodeType": "YulIdentifier",
"src": "43791:3:40"
},
{
"kind": "number",
"nativeSrc": "43796:2:40",
"nodeType": "YulLiteral",
"src": "43796:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "43787:3:40",
"nodeType": "YulIdentifier",
"src": "43787:3:40"
},
"nativeSrc": "43787:12:40",
"nodeType": "YulFunctionCall",
"src": "43787:12:40"
}
],
"functionName": {
"name": "abi_decode_t_uint64",
"nativeSrc": "43762:19:40",
"nodeType": "YulIdentifier",
"src": "43762:19:40"
},
"nativeSrc": "43762:38:40",
"nodeType": "YulFunctionCall",
"src": "43762:38:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "43753:5:40",
"nodeType": "YulIdentifier",
"src": "43753:5:40"
}
]
}
]
},
"name": "calldata_access_t_uint64",
"nativeSrc": "43686:120:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "baseRef",
"nativeSrc": "43720:7:40",
"nodeType": "YulTypedName",
"src": "43720:7:40",
"type": ""
},
{
"name": "ptr",
"nativeSrc": "43729:3:40",
"nodeType": "YulTypedName",
"src": "43729:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "43737:5:40",
"nodeType": "YulTypedName",
"src": "43737:5:40",
"type": ""
}
],
"src": "43686:120:40"
},
{
"body": {
"nativeSrc": "43962:645:40",
"nodeType": "YulBlock",
"src": "43962:645:40",
"statements": [
{
"nativeSrc": "43972:26:40",
"nodeType": "YulVariableDeclaration",
"src": "43972:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "43988:3:40",
"nodeType": "YulIdentifier",
"src": "43988:3:40"
},
{
"kind": "number",
"nativeSrc": "43993:4:40",
"nodeType": "YulLiteral",
"src": "43993:4:40",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nativeSrc": "43984:3:40",
"nodeType": "YulIdentifier",
"src": "43984:3:40"
},
"nativeSrc": "43984:14:40",
"nodeType": "YulFunctionCall",
"src": "43984:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "43976:4:40",
"nodeType": "YulTypedName",
"src": "43976:4:40",
"type": ""
}
]
},
{
"nativeSrc": "44008:190:40",
"nodeType": "YulBlock",
"src": "44008:190:40",
"statements": [
{
"nativeSrc": "44045:69:40",
"nodeType": "YulVariableDeclaration",
"src": "44045:69:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "44090:5:40",
"nodeType": "YulIdentifier",
"src": "44090:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "44101:5:40",
"nodeType": "YulIdentifier",
"src": "44101:5:40"
},
{
"kind": "number",
"nativeSrc": "44108:4:40",
"nodeType": "YulLiteral",
"src": "44108:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "44097:3:40",
"nodeType": "YulIdentifier",
"src": "44097:3:40"
},
"nativeSrc": "44097:16:40",
"nodeType": "YulFunctionCall",
"src": "44097:16:40"
}
],
"functionName": {
"name": "calldata_access_t_uint32",
"nativeSrc": "44065:24:40",
"nodeType": "YulIdentifier",
"src": "44065:24:40"
},
"nativeSrc": "44065:49:40",
"nodeType": "YulFunctionCall",
"src": "44065:49:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "44049:12:40",
"nodeType": "YulTypedName",
"src": "44049:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "44159:12:40",
"nodeType": "YulIdentifier",
"src": "44159:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "44177:3:40",
"nodeType": "YulIdentifier",
"src": "44177:3:40"
},
{
"kind": "number",
"nativeSrc": "44182:4:40",
"nodeType": "YulLiteral",
"src": "44182:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "44173:3:40",
"nodeType": "YulIdentifier",
"src": "44173:3:40"
},
"nativeSrc": "44173:14:40",
"nodeType": "YulFunctionCall",
"src": "44173:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint32_to_t_uint32",
"nativeSrc": "44127:31:40",
"nodeType": "YulIdentifier",
"src": "44127:31:40"
},
"nativeSrc": "44127:61:40",
"nodeType": "YulFunctionCall",
"src": "44127:61:40"
},
"nativeSrc": "44127:61:40",
"nodeType": "YulExpressionStatement",
"src": "44127:61:40"
}
]
},
{
"nativeSrc": "44208:193:40",
"nodeType": "YulBlock",
"src": "44208:193:40",
"statements": [
{
"nativeSrc": "44245:70:40",
"nodeType": "YulVariableDeclaration",
"src": "44245:70:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "44291:5:40",
"nodeType": "YulIdentifier",
"src": "44291:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "44302:5:40",
"nodeType": "YulIdentifier",
"src": "44302:5:40"
},
{
"kind": "number",
"nativeSrc": "44309:4:40",
"nodeType": "YulLiteral",
"src": "44309:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "44298:3:40",
"nodeType": "YulIdentifier",
"src": "44298:3:40"
},
"nativeSrc": "44298:16:40",
"nodeType": "YulFunctionCall",
"src": "44298:16:40"
}
],
"functionName": {
"name": "calldata_access_t_bytes32",
"nativeSrc": "44265:25:40",
"nodeType": "YulIdentifier",
"src": "44265:25:40"
},
"nativeSrc": "44265:50:40",
"nodeType": "YulFunctionCall",
"src": "44265:50:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "44249:12:40",
"nodeType": "YulTypedName",
"src": "44249:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "44362:12:40",
"nodeType": "YulIdentifier",
"src": "44362:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "44380:3:40",
"nodeType": "YulIdentifier",
"src": "44380:3:40"
},
{
"kind": "number",
"nativeSrc": "44385:4:40",
"nodeType": "YulLiteral",
"src": "44385:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "44376:3:40",
"nodeType": "YulIdentifier",
"src": "44376:3:40"
},
"nativeSrc": "44376:14:40",
"nodeType": "YulFunctionCall",
"src": "44376:14:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32",
"nativeSrc": "44328:33:40",
"nodeType": "YulIdentifier",
"src": "44328:33:40"
},
"nativeSrc": "44328:63:40",
"nodeType": "YulFunctionCall",
"src": "44328:63:40"
},
"nativeSrc": "44328:63:40",
"nodeType": "YulExpressionStatement",
"src": "44328:63:40"
}
]
},
{
"nativeSrc": "44411:189:40",
"nodeType": "YulBlock",
"src": "44411:189:40",
"statements": [
{
"nativeSrc": "44447:69:40",
"nodeType": "YulVariableDeclaration",
"src": "44447:69:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "44492:5:40",
"nodeType": "YulIdentifier",
"src": "44492:5:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "44503:5:40",
"nodeType": "YulIdentifier",
"src": "44503:5:40"
},
{
"kind": "number",
"nativeSrc": "44510:4:40",
"nodeType": "YulLiteral",
"src": "44510:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "44499:3:40",
"nodeType": "YulIdentifier",
"src": "44499:3:40"
},
"nativeSrc": "44499:16:40",
"nodeType": "YulFunctionCall",
"src": "44499:16:40"
}
],
"functionName": {
"name": "calldata_access_t_uint64",
"nativeSrc": "44467:24:40",
"nodeType": "YulIdentifier",
"src": "44467:24:40"
},
"nativeSrc": "44467:49:40",
"nodeType": "YulFunctionCall",
"src": "44467:49:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "44451:12:40",
"nodeType": "YulTypedName",
"src": "44451:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "44561:12:40",
"nodeType": "YulIdentifier",
"src": "44561:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "44579:3:40",
"nodeType": "YulIdentifier",
"src": "44579:3:40"
},
{
"kind": "number",
"nativeSrc": "44584:4:40",
"nodeType": "YulLiteral",
"src": "44584:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "44575:3:40",
"nodeType": "YulIdentifier",
"src": "44575:3:40"
},
"nativeSrc": "44575:14:40",
"nodeType": "YulFunctionCall",
"src": "44575:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64",
"nativeSrc": "44529:31:40",
"nodeType": "YulIdentifier",
"src": "44529:31:40"
},
"nativeSrc": "44529:61:40",
"nodeType": "YulFunctionCall",
"src": "44529:61:40"
},
"nativeSrc": "44529:61:40",
"nodeType": "YulExpressionStatement",
"src": "44529:61:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_Origin_$40_calldata_ptr_to_t_struct$_Origin_$40_memory_ptr_fromStack",
"nativeSrc": "43850:757:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "43949:5:40",
"nodeType": "YulTypedName",
"src": "43949:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "43956:3:40",
"nodeType": "YulTypedName",
"src": "43956:3:40",
"type": ""
}
],
"src": "43850:757:40"
},
{
"body": {
"nativeSrc": "44925:660:40",
"nodeType": "YulBlock",
"src": "44925:660:40",
"statements": [
{
"nativeSrc": "44935:27:40",
"nodeType": "YulAssignment",
"src": "44935:27:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "44947:9:40",
"nodeType": "YulIdentifier",
"src": "44947:9:40"
},
{
"kind": "number",
"nativeSrc": "44958:3:40",
"nodeType": "YulLiteral",
"src": "44958:3:40",
"type": "",
"value": "224"
}
],
"functionName": {
"name": "add",
"nativeSrc": "44943:3:40",
"nodeType": "YulIdentifier",
"src": "44943:3:40"
},
"nativeSrc": "44943:19:40",
"nodeType": "YulFunctionCall",
"src": "44943:19:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "44935:4:40",
"nodeType": "YulIdentifier",
"src": "44935:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "45062:6:40",
"nodeType": "YulIdentifier",
"src": "45062:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "45075:9:40",
"nodeType": "YulIdentifier",
"src": "45075:9:40"
},
{
"kind": "number",
"nativeSrc": "45086:1:40",
"nodeType": "YulLiteral",
"src": "45086:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "45071:3:40",
"nodeType": "YulIdentifier",
"src": "45071:3:40"
},
"nativeSrc": "45071:17:40",
"nodeType": "YulFunctionCall",
"src": "45071:17:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_Origin_$40_calldata_ptr_to_t_struct$_Origin_$40_memory_ptr_fromStack",
"nativeSrc": "44972:89:40",
"nodeType": "YulIdentifier",
"src": "44972:89:40"
},
"nativeSrc": "44972:117:40",
"nodeType": "YulFunctionCall",
"src": "44972:117:40"
},
"nativeSrc": "44972:117:40",
"nodeType": "YulExpressionStatement",
"src": "44972:117:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "45143:6:40",
"nodeType": "YulIdentifier",
"src": "45143:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "45156:9:40",
"nodeType": "YulIdentifier",
"src": "45156:9:40"
},
{
"kind": "number",
"nativeSrc": "45167:2:40",
"nodeType": "YulLiteral",
"src": "45167:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "45152:3:40",
"nodeType": "YulIdentifier",
"src": "45152:3:40"
},
"nativeSrc": "45152:18:40",
"nodeType": "YulFunctionCall",
"src": "45152:18:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "45099:43:40",
"nodeType": "YulIdentifier",
"src": "45099:43:40"
},
"nativeSrc": "45099:72:40",
"nodeType": "YulFunctionCall",
"src": "45099:72:40"
},
"nativeSrc": "45099:72:40",
"nodeType": "YulExpressionStatement",
"src": "45099:72:40"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "45192:9:40",
"nodeType": "YulIdentifier",
"src": "45192:9:40"
},
{
"kind": "number",
"nativeSrc": "45203:3:40",
"nodeType": "YulLiteral",
"src": "45203:3:40",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nativeSrc": "45188:3:40",
"nodeType": "YulIdentifier",
"src": "45188:3:40"
},
"nativeSrc": "45188:19:40",
"nodeType": "YulFunctionCall",
"src": "45188:19:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "45213:4:40",
"nodeType": "YulIdentifier",
"src": "45213:4:40"
},
{
"name": "headStart",
"nativeSrc": "45219:9:40",
"nodeType": "YulIdentifier",
"src": "45219:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "45209:3:40",
"nodeType": "YulIdentifier",
"src": "45209:3:40"
},
"nativeSrc": "45209:20:40",
"nodeType": "YulFunctionCall",
"src": "45209:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "45181:6:40",
"nodeType": "YulIdentifier",
"src": "45181:6:40"
},
"nativeSrc": "45181:49:40",
"nodeType": "YulFunctionCall",
"src": "45181:49:40"
},
"nativeSrc": "45181:49:40",
"nodeType": "YulExpressionStatement",
"src": "45181:49:40"
},
{
"nativeSrc": "45239:94:40",
"nodeType": "YulAssignment",
"src": "45239:94:40",
"value": {
"arguments": [
{
"name": "value2",
"nativeSrc": "45311:6:40",
"nodeType": "YulIdentifier",
"src": "45311:6:40"
},
{
"name": "value3",
"nativeSrc": "45319:6:40",
"nodeType": "YulIdentifier",
"src": "45319:6:40"
},
{
"name": "tail",
"nativeSrc": "45328:4:40",
"nodeType": "YulIdentifier",
"src": "45328:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "45247:63:40",
"nodeType": "YulIdentifier",
"src": "45247:63:40"
},
"nativeSrc": "45247:86:40",
"nodeType": "YulFunctionCall",
"src": "45247:86:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "45239:4:40",
"nodeType": "YulIdentifier",
"src": "45239:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value4",
"nativeSrc": "45387:6:40",
"nodeType": "YulIdentifier",
"src": "45387:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "45400:9:40",
"nodeType": "YulIdentifier",
"src": "45400:9:40"
},
{
"kind": "number",
"nativeSrc": "45411:3:40",
"nodeType": "YulLiteral",
"src": "45411:3:40",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nativeSrc": "45396:3:40",
"nodeType": "YulIdentifier",
"src": "45396:3:40"
},
"nativeSrc": "45396:19:40",
"nodeType": "YulFunctionCall",
"src": "45396:19:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "45343:43:40",
"nodeType": "YulIdentifier",
"src": "45343:43:40"
},
"nativeSrc": "45343:73:40",
"nodeType": "YulFunctionCall",
"src": "45343:73:40"
},
"nativeSrc": "45343:73:40",
"nodeType": "YulExpressionStatement",
"src": "45343:73:40"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "45437:9:40",
"nodeType": "YulIdentifier",
"src": "45437:9:40"
},
{
"kind": "number",
"nativeSrc": "45448:3:40",
"nodeType": "YulLiteral",
"src": "45448:3:40",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "add",
"nativeSrc": "45433:3:40",
"nodeType": "YulIdentifier",
"src": "45433:3:40"
},
"nativeSrc": "45433:19:40",
"nodeType": "YulFunctionCall",
"src": "45433:19:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "45458:4:40",
"nodeType": "YulIdentifier",
"src": "45458:4:40"
},
{
"name": "headStart",
"nativeSrc": "45464:9:40",
"nodeType": "YulIdentifier",
"src": "45464:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "45454:3:40",
"nodeType": "YulIdentifier",
"src": "45454:3:40"
},
"nativeSrc": "45454:20:40",
"nodeType": "YulFunctionCall",
"src": "45454:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "45426:6:40",
"nodeType": "YulIdentifier",
"src": "45426:6:40"
},
"nativeSrc": "45426:49:40",
"nodeType": "YulFunctionCall",
"src": "45426:49:40"
},
"nativeSrc": "45426:49:40",
"nodeType": "YulExpressionStatement",
"src": "45426:49:40"
},
{
"nativeSrc": "45484:94:40",
"nodeType": "YulAssignment",
"src": "45484:94:40",
"value": {
"arguments": [
{
"name": "value5",
"nativeSrc": "45556:6:40",
"nodeType": "YulIdentifier",
"src": "45556:6:40"
},
{
"name": "value6",
"nativeSrc": "45564:6:40",
"nodeType": "YulIdentifier",
"src": "45564:6:40"
},
{
"name": "tail",
"nativeSrc": "45573:4:40",
"nodeType": "YulIdentifier",
"src": "45573:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "45492:63:40",
"nodeType": "YulIdentifier",
"src": "45492:63:40"
},
"nativeSrc": "45492:86:40",
"nodeType": "YulFunctionCall",
"src": "45492:86:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "45484:4:40",
"nodeType": "YulIdentifier",
"src": "45484:4:40"
}
]
}
]
},
"name": "abi_encode_tuple_t_struct$_Origin_$40_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$40_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed",
"nativeSrc": "44613:972:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "44849:9:40",
"nodeType": "YulTypedName",
"src": "44849:9:40",
"type": ""
},
{
"name": "value6",
"nativeSrc": "44861:6:40",
"nodeType": "YulTypedName",
"src": "44861:6:40",
"type": ""
},
{
"name": "value5",
"nativeSrc": "44869:6:40",
"nodeType": "YulTypedName",
"src": "44869:6:40",
"type": ""
},
{
"name": "value4",
"nativeSrc": "44877:6:40",
"nodeType": "YulTypedName",
"src": "44877:6:40",
"type": ""
},
{
"name": "value3",
"nativeSrc": "44885:6:40",
"nodeType": "YulTypedName",
"src": "44885:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "44893:6:40",
"nodeType": "YulTypedName",
"src": "44893:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "44901:6:40",
"nodeType": "YulTypedName",
"src": "44901:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "44909:6:40",
"nodeType": "YulTypedName",
"src": "44909:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "44920:4:40",
"nodeType": "YulTypedName",
"src": "44920:4:40",
"type": ""
}
],
"src": "44613:972:40"
},
{
"body": {
"nativeSrc": "45685:338:40",
"nodeType": "YulBlock",
"src": "45685:338:40",
"statements": [
{
"nativeSrc": "45695:74:40",
"nodeType": "YulAssignment",
"src": "45695:74:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nativeSrc": "45761:6:40",
"nodeType": "YulIdentifier",
"src": "45761:6:40"
}
],
"functionName": {
"name": "array_allocation_size_t_bytes_memory_ptr",
"nativeSrc": "45720:40:40",
"nodeType": "YulIdentifier",
"src": "45720:40:40"
},
"nativeSrc": "45720:48:40",
"nodeType": "YulFunctionCall",
"src": "45720:48:40"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "45704:15:40",
"nodeType": "YulIdentifier",
"src": "45704:15:40"
},
"nativeSrc": "45704:65:40",
"nodeType": "YulFunctionCall",
"src": "45704:65:40"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "45695:5:40",
"nodeType": "YulIdentifier",
"src": "45695:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nativeSrc": "45785:5:40",
"nodeType": "YulIdentifier",
"src": "45785:5:40"
},
{
"name": "length",
"nativeSrc": "45792:6:40",
"nodeType": "YulIdentifier",
"src": "45792:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "45778:6:40",
"nodeType": "YulIdentifier",
"src": "45778:6:40"
},
"nativeSrc": "45778:21:40",
"nodeType": "YulFunctionCall",
"src": "45778:21:40"
},
"nativeSrc": "45778:21:40",
"nodeType": "YulExpressionStatement",
"src": "45778:21:40"
},
{
"nativeSrc": "45808:27:40",
"nodeType": "YulVariableDeclaration",
"src": "45808:27:40",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "45823:5:40",
"nodeType": "YulIdentifier",
"src": "45823:5:40"
},
{
"kind": "number",
"nativeSrc": "45830:4:40",
"nodeType": "YulLiteral",
"src": "45830:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "45819:3:40",
"nodeType": "YulIdentifier",
"src": "45819:3:40"
},
"nativeSrc": "45819:16:40",
"nodeType": "YulFunctionCall",
"src": "45819:16:40"
},
"variables": [
{
"name": "dst",
"nativeSrc": "45812:3:40",
"nodeType": "YulTypedName",
"src": "45812:3:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "45873:83:40",
"nodeType": "YulBlock",
"src": "45873:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "45875:77:40",
"nodeType": "YulIdentifier",
"src": "45875:77:40"
},
"nativeSrc": "45875:79:40",
"nodeType": "YulFunctionCall",
"src": "45875:79:40"
},
"nativeSrc": "45875:79:40",
"nodeType": "YulExpressionStatement",
"src": "45875:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "45854:3:40",
"nodeType": "YulIdentifier",
"src": "45854:3:40"
},
{
"name": "length",
"nativeSrc": "45859:6:40",
"nodeType": "YulIdentifier",
"src": "45859:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "45850:3:40",
"nodeType": "YulIdentifier",
"src": "45850:3:40"
},
"nativeSrc": "45850:16:40",
"nodeType": "YulFunctionCall",
"src": "45850:16:40"
},
{
"name": "end",
"nativeSrc": "45868:3:40",
"nodeType": "YulIdentifier",
"src": "45868:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "45847:2:40",
"nodeType": "YulIdentifier",
"src": "45847:2:40"
},
"nativeSrc": "45847:25:40",
"nodeType": "YulFunctionCall",
"src": "45847:25:40"
},
"nativeSrc": "45844:112:40",
"nodeType": "YulIf",
"src": "45844:112:40"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nativeSrc": "46000:3:40",
"nodeType": "YulIdentifier",
"src": "46000:3:40"
},
{
"name": "dst",
"nativeSrc": "46005:3:40",
"nodeType": "YulIdentifier",
"src": "46005:3:40"
},
{
"name": "length",
"nativeSrc": "46010:6:40",
"nodeType": "YulIdentifier",
"src": "46010:6:40"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "45965:34:40",
"nodeType": "YulIdentifier",
"src": "45965:34:40"
},
"nativeSrc": "45965:52:40",
"nodeType": "YulFunctionCall",
"src": "45965:52:40"
},
"nativeSrc": "45965:52:40",
"nodeType": "YulExpressionStatement",
"src": "45965:52:40"
}
]
},
"name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory",
"nativeSrc": "45591:432:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "45658:3:40",
"nodeType": "YulTypedName",
"src": "45658:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "45663:6:40",
"nodeType": "YulTypedName",
"src": "45663:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "45671:3:40",
"nodeType": "YulTypedName",
"src": "45671:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "45679:5:40",
"nodeType": "YulTypedName",
"src": "45679:5:40",
"type": ""
}
],
"src": "45591:432:40"
},
{
"body": {
"nativeSrc": "46114:281:40",
"nodeType": "YulBlock",
"src": "46114:281:40",
"statements": [
{
"body": {
"nativeSrc": "46163:83:40",
"nodeType": "YulBlock",
"src": "46163:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "46165:77:40",
"nodeType": "YulIdentifier",
"src": "46165:77:40"
},
"nativeSrc": "46165:79:40",
"nodeType": "YulFunctionCall",
"src": "46165:79:40"
},
"nativeSrc": "46165:79:40",
"nodeType": "YulExpressionStatement",
"src": "46165:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "46142:6:40",
"nodeType": "YulIdentifier",
"src": "46142:6:40"
},
{
"kind": "number",
"nativeSrc": "46150:4:40",
"nodeType": "YulLiteral",
"src": "46150:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "46138:3:40",
"nodeType": "YulIdentifier",
"src": "46138:3:40"
},
"nativeSrc": "46138:17:40",
"nodeType": "YulFunctionCall",
"src": "46138:17:40"
},
{
"name": "end",
"nativeSrc": "46157:3:40",
"nodeType": "YulIdentifier",
"src": "46157:3:40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "46134:3:40",
"nodeType": "YulIdentifier",
"src": "46134:3:40"
},
"nativeSrc": "46134:27:40",
"nodeType": "YulFunctionCall",
"src": "46134:27:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "46127:6:40",
"nodeType": "YulIdentifier",
"src": "46127:6:40"
},
"nativeSrc": "46127:35:40",
"nodeType": "YulFunctionCall",
"src": "46127:35:40"
},
"nativeSrc": "46124:122:40",
"nodeType": "YulIf",
"src": "46124:122:40"
},
{
"nativeSrc": "46255:27:40",
"nodeType": "YulVariableDeclaration",
"src": "46255:27:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "46275:6:40",
"nodeType": "YulIdentifier",
"src": "46275:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "46269:5:40",
"nodeType": "YulIdentifier",
"src": "46269:5:40"
},
"nativeSrc": "46269:13:40",
"nodeType": "YulFunctionCall",
"src": "46269:13:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "46259:6:40",
"nodeType": "YulTypedName",
"src": "46259:6:40",
"type": ""
}
]
},
{
"nativeSrc": "46291:98:40",
"nodeType": "YulAssignment",
"src": "46291:98:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "46362:6:40",
"nodeType": "YulIdentifier",
"src": "46362:6:40"
},
{
"kind": "number",
"nativeSrc": "46370:4:40",
"nodeType": "YulLiteral",
"src": "46370:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "46358:3:40",
"nodeType": "YulIdentifier",
"src": "46358:3:40"
},
"nativeSrc": "46358:17:40",
"nodeType": "YulFunctionCall",
"src": "46358:17:40"
},
{
"name": "length",
"nativeSrc": "46377:6:40",
"nodeType": "YulIdentifier",
"src": "46377:6:40"
},
{
"name": "end",
"nativeSrc": "46385:3:40",
"nodeType": "YulIdentifier",
"src": "46385:3:40"
}
],
"functionName": {
"name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory",
"nativeSrc": "46300:57:40",
"nodeType": "YulIdentifier",
"src": "46300:57:40"
},
"nativeSrc": "46300:89:40",
"nodeType": "YulFunctionCall",
"src": "46300:89:40"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "46291:5:40",
"nodeType": "YulIdentifier",
"src": "46291:5:40"
}
]
}
]
},
"name": "abi_decode_t_bytes_memory_ptr_fromMemory",
"nativeSrc": "46042:353:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "46092:6:40",
"nodeType": "YulTypedName",
"src": "46092:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "46100:3:40",
"nodeType": "YulTypedName",
"src": "46100:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "46108:5:40",
"nodeType": "YulTypedName",
"src": "46108:5:40",
"type": ""
}
],
"src": "46042:353:40"
},
{
"body": {
"nativeSrc": "46487:436:40",
"nodeType": "YulBlock",
"src": "46487:436:40",
"statements": [
{
"body": {
"nativeSrc": "46533:83:40",
"nodeType": "YulBlock",
"src": "46533:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "46535:77:40",
"nodeType": "YulIdentifier",
"src": "46535:77:40"
},
"nativeSrc": "46535:79:40",
"nodeType": "YulFunctionCall",
"src": "46535:79:40"
},
"nativeSrc": "46535:79:40",
"nodeType": "YulExpressionStatement",
"src": "46535:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "46508:7:40",
"nodeType": "YulIdentifier",
"src": "46508:7:40"
},
{
"name": "headStart",
"nativeSrc": "46517:9:40",
"nodeType": "YulIdentifier",
"src": "46517:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "46504:3:40",
"nodeType": "YulIdentifier",
"src": "46504:3:40"
},
"nativeSrc": "46504:23:40",
"nodeType": "YulFunctionCall",
"src": "46504:23:40"
},
{
"kind": "number",
"nativeSrc": "46529:2:40",
"nodeType": "YulLiteral",
"src": "46529:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "46500:3:40",
"nodeType": "YulIdentifier",
"src": "46500:3:40"
},
"nativeSrc": "46500:32:40",
"nodeType": "YulFunctionCall",
"src": "46500:32:40"
},
"nativeSrc": "46497:119:40",
"nodeType": "YulIf",
"src": "46497:119:40"
},
{
"nativeSrc": "46626:290:40",
"nodeType": "YulBlock",
"src": "46626:290:40",
"statements": [
{
"nativeSrc": "46641:38:40",
"nodeType": "YulVariableDeclaration",
"src": "46641:38:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "46665:9:40",
"nodeType": "YulIdentifier",
"src": "46665:9:40"
},
{
"kind": "number",
"nativeSrc": "46676:1:40",
"nodeType": "YulLiteral",
"src": "46676:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "46661:3:40",
"nodeType": "YulIdentifier",
"src": "46661:3:40"
},
"nativeSrc": "46661:17:40",
"nodeType": "YulFunctionCall",
"src": "46661:17:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "46655:5:40",
"nodeType": "YulIdentifier",
"src": "46655:5:40"
},
"nativeSrc": "46655:24:40",
"nodeType": "YulFunctionCall",
"src": "46655:24:40"
},
"variables": [
{
"name": "offset",
"nativeSrc": "46645:6:40",
"nodeType": "YulTypedName",
"src": "46645:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "46726:83:40",
"nodeType": "YulBlock",
"src": "46726:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "46728:77:40",
"nodeType": "YulIdentifier",
"src": "46728:77:40"
},
"nativeSrc": "46728:79:40",
"nodeType": "YulFunctionCall",
"src": "46728:79:40"
},
"nativeSrc": "46728:79:40",
"nodeType": "YulExpressionStatement",
"src": "46728:79:40"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "46698:6:40",
"nodeType": "YulIdentifier",
"src": "46698:6:40"
},
{
"kind": "number",
"nativeSrc": "46706:18:40",
"nodeType": "YulLiteral",
"src": "46706:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "46695:2:40",
"nodeType": "YulIdentifier",
"src": "46695:2:40"
},
"nativeSrc": "46695:30:40",
"nodeType": "YulFunctionCall",
"src": "46695:30:40"
},
"nativeSrc": "46692:117:40",
"nodeType": "YulIf",
"src": "46692:117:40"
},
{
"nativeSrc": "46823:83:40",
"nodeType": "YulAssignment",
"src": "46823:83:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "46878:9:40",
"nodeType": "YulIdentifier",
"src": "46878:9:40"
},
{
"name": "offset",
"nativeSrc": "46889:6:40",
"nodeType": "YulIdentifier",
"src": "46889:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "46874:3:40",
"nodeType": "YulIdentifier",
"src": "46874:3:40"
},
"nativeSrc": "46874:22:40",
"nodeType": "YulFunctionCall",
"src": "46874:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "46898:7:40",
"nodeType": "YulIdentifier",
"src": "46898:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr_fromMemory",
"nativeSrc": "46833:40:40",
"nodeType": "YulIdentifier",
"src": "46833:40:40"
},
"nativeSrc": "46833:73:40",
"nodeType": "YulFunctionCall",
"src": "46833:73:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "46823:6:40",
"nodeType": "YulIdentifier",
"src": "46823:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes_memory_ptr_fromMemory",
"nativeSrc": "46401:522:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "46457:9:40",
"nodeType": "YulTypedName",
"src": "46457:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "46468:7:40",
"nodeType": "YulTypedName",
"src": "46468:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "46480:6:40",
"nodeType": "YulTypedName",
"src": "46480:6:40",
"type": ""
}
],
"src": "46401:522:40"
},
{
"body": {
"nativeSrc": "47055:206:40",
"nodeType": "YulBlock",
"src": "47055:206:40",
"statements": [
{
"nativeSrc": "47065:26:40",
"nodeType": "YulAssignment",
"src": "47065:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "47077:9:40",
"nodeType": "YulIdentifier",
"src": "47077:9:40"
},
{
"kind": "number",
"nativeSrc": "47088:2:40",
"nodeType": "YulLiteral",
"src": "47088:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "47073:3:40",
"nodeType": "YulIdentifier",
"src": "47073:3:40"
},
"nativeSrc": "47073:18:40",
"nodeType": "YulFunctionCall",
"src": "47073:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "47065:4:40",
"nodeType": "YulIdentifier",
"src": "47065:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "47145:6:40",
"nodeType": "YulIdentifier",
"src": "47145:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "47158:9:40",
"nodeType": "YulIdentifier",
"src": "47158:9:40"
},
{
"kind": "number",
"nativeSrc": "47169:1:40",
"nodeType": "YulLiteral",
"src": "47169:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "47154:3:40",
"nodeType": "YulIdentifier",
"src": "47154:3:40"
},
"nativeSrc": "47154:17:40",
"nodeType": "YulFunctionCall",
"src": "47154:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "47101:43:40",
"nodeType": "YulIdentifier",
"src": "47101:43:40"
},
"nativeSrc": "47101:71:40",
"nodeType": "YulFunctionCall",
"src": "47101:71:40"
},
"nativeSrc": "47101:71:40",
"nodeType": "YulExpressionStatement",
"src": "47101:71:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "47226:6:40",
"nodeType": "YulIdentifier",
"src": "47226:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "47239:9:40",
"nodeType": "YulIdentifier",
"src": "47239:9:40"
},
{
"kind": "number",
"nativeSrc": "47250:2:40",
"nodeType": "YulLiteral",
"src": "47250:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "47235:3:40",
"nodeType": "YulIdentifier",
"src": "47235:3:40"
},
"nativeSrc": "47235:18:40",
"nodeType": "YulFunctionCall",
"src": "47235:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "47182:43:40",
"nodeType": "YulIdentifier",
"src": "47182:43:40"
},
"nativeSrc": "47182:72:40",
"nodeType": "YulFunctionCall",
"src": "47182:72:40"
},
"nativeSrc": "47182:72:40",
"nodeType": "YulExpressionStatement",
"src": "47182:72:40"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
"nativeSrc": "46929:332:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "47019:9:40",
"nodeType": "YulTypedName",
"src": "47019:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "47031:6:40",
"nodeType": "YulTypedName",
"src": "47031:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "47039:6:40",
"nodeType": "YulTypedName",
"src": "47039:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "47050:4:40",
"nodeType": "YulTypedName",
"src": "47050:4:40",
"type": ""
}
],
"src": "46929:332:40"
},
{
"body": {
"nativeSrc": "47363:122:40",
"nodeType": "YulBlock",
"src": "47363:122:40",
"statements": [
{
"nativeSrc": "47373:26:40",
"nodeType": "YulAssignment",
"src": "47373:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "47385:9:40",
"nodeType": "YulIdentifier",
"src": "47385:9:40"
},
{
"kind": "number",
"nativeSrc": "47396:2:40",
"nodeType": "YulLiteral",
"src": "47396:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "47381:3:40",
"nodeType": "YulIdentifier",
"src": "47381:3:40"
},
"nativeSrc": "47381:18:40",
"nodeType": "YulFunctionCall",
"src": "47381:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "47373:4:40",
"nodeType": "YulIdentifier",
"src": "47373:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "47451:6:40",
"nodeType": "YulIdentifier",
"src": "47451:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "47464:9:40",
"nodeType": "YulIdentifier",
"src": "47464:9:40"
},
{
"kind": "number",
"nativeSrc": "47475:1:40",
"nodeType": "YulLiteral",
"src": "47475:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "47460:3:40",
"nodeType": "YulIdentifier",
"src": "47460:3:40"
},
"nativeSrc": "47460:17:40",
"nodeType": "YulFunctionCall",
"src": "47460:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint32_to_t_uint32_fromStack",
"nativeSrc": "47409:41:40",
"nodeType": "YulIdentifier",
"src": "47409:41:40"
},
"nativeSrc": "47409:69:40",
"nodeType": "YulFunctionCall",
"src": "47409:69:40"
},
"nativeSrc": "47409:69:40",
"nodeType": "YulExpressionStatement",
"src": "47409:69:40"
}
]
},
"name": "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed",
"nativeSrc": "47267:218:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "47335:9:40",
"nodeType": "YulTypedName",
"src": "47335:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "47347:6:40",
"nodeType": "YulTypedName",
"src": "47347:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "47358:4:40",
"nodeType": "YulTypedName",
"src": "47358:4:40",
"type": ""
}
],
"src": "47267:218:40"
},
{
"body": {
"nativeSrc": "47556:262:40",
"nodeType": "YulBlock",
"src": "47556:262:40",
"statements": [
{
"body": {
"nativeSrc": "47602:83:40",
"nodeType": "YulBlock",
"src": "47602:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "47604:77:40",
"nodeType": "YulIdentifier",
"src": "47604:77:40"
},
"nativeSrc": "47604:79:40",
"nodeType": "YulFunctionCall",
"src": "47604:79:40"
},
"nativeSrc": "47604:79:40",
"nodeType": "YulExpressionStatement",
"src": "47604:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "47577:7:40",
"nodeType": "YulIdentifier",
"src": "47577:7:40"
},
{
"name": "headStart",
"nativeSrc": "47586:9:40",
"nodeType": "YulIdentifier",
"src": "47586:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "47573:3:40",
"nodeType": "YulIdentifier",
"src": "47573:3:40"
},
"nativeSrc": "47573:23:40",
"nodeType": "YulFunctionCall",
"src": "47573:23:40"
},
{
"kind": "number",
"nativeSrc": "47598:2:40",
"nodeType": "YulLiteral",
"src": "47598:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "47569:3:40",
"nodeType": "YulIdentifier",
"src": "47569:3:40"
},
"nativeSrc": "47569:32:40",
"nodeType": "YulFunctionCall",
"src": "47569:32:40"
},
"nativeSrc": "47566:119:40",
"nodeType": "YulIf",
"src": "47566:119:40"
},
{
"nativeSrc": "47695:116:40",
"nodeType": "YulBlock",
"src": "47695:116:40",
"statements": [
{
"nativeSrc": "47710:15:40",
"nodeType": "YulVariableDeclaration",
"src": "47710:15:40",
"value": {
"kind": "number",
"nativeSrc": "47724:1:40",
"nodeType": "YulLiteral",
"src": "47724:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "47714:6:40",
"nodeType": "YulTypedName",
"src": "47714:6:40",
"type": ""
}
]
},
{
"nativeSrc": "47739:62:40",
"nodeType": "YulAssignment",
"src": "47739:62:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "47773:9:40",
"nodeType": "YulIdentifier",
"src": "47773:9:40"
},
{
"name": "offset",
"nativeSrc": "47784:6:40",
"nodeType": "YulIdentifier",
"src": "47784:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "47769:3:40",
"nodeType": "YulIdentifier",
"src": "47769:3:40"
},
"nativeSrc": "47769:22:40",
"nodeType": "YulFunctionCall",
"src": "47769:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "47793:7:40",
"nodeType": "YulIdentifier",
"src": "47793:7:40"
}
],
"functionName": {
"name": "abi_decode_t_uint64",
"nativeSrc": "47749:19:40",
"nodeType": "YulIdentifier",
"src": "47749:19:40"
},
"nativeSrc": "47749:52:40",
"nodeType": "YulFunctionCall",
"src": "47749:52:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "47739:6:40",
"nodeType": "YulIdentifier",
"src": "47739:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint64",
"nativeSrc": "47491:327:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "47526:9:40",
"nodeType": "YulTypedName",
"src": "47526:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "47537:7:40",
"nodeType": "YulTypedName",
"src": "47537:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "47549:6:40",
"nodeType": "YulTypedName",
"src": "47549:6:40",
"type": ""
}
],
"src": "47491:327:40"
},
{
"body": {
"nativeSrc": "47877:32:40",
"nodeType": "YulBlock",
"src": "47877:32:40",
"statements": [
{
"nativeSrc": "47887:16:40",
"nodeType": "YulAssignment",
"src": "47887:16:40",
"value": {
"name": "value",
"nativeSrc": "47898:5:40",
"nodeType": "YulIdentifier",
"src": "47898:5:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "47887:7:40",
"nodeType": "YulIdentifier",
"src": "47887:7:40"
}
]
}
]
},
"name": "cleanup_t_rational_0_by_1",
"nativeSrc": "47824:85:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "47859:5:40",
"nodeType": "YulTypedName",
"src": "47859:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "47869:7:40",
"nodeType": "YulTypedName",
"src": "47869:7:40",
"type": ""
}
],
"src": "47824:85:40"
},
{
"body": {
"nativeSrc": "47982:89:40",
"nodeType": "YulBlock",
"src": "47982:89:40",
"statements": [
{
"nativeSrc": "47992:73:40",
"nodeType": "YulAssignment",
"src": "47992:73:40",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "48057:5:40",
"nodeType": "YulIdentifier",
"src": "48057:5:40"
}
],
"functionName": {
"name": "cleanup_t_rational_0_by_1",
"nativeSrc": "48031:25:40",
"nodeType": "YulIdentifier",
"src": "48031:25:40"
},
"nativeSrc": "48031:32:40",
"nodeType": "YulFunctionCall",
"src": "48031:32:40"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "48022:8:40",
"nodeType": "YulIdentifier",
"src": "48022:8:40"
},
"nativeSrc": "48022:42:40",
"nodeType": "YulFunctionCall",
"src": "48022:42:40"
}
],
"functionName": {
"name": "cleanup_t_uint16",
"nativeSrc": "48005:16:40",
"nodeType": "YulIdentifier",
"src": "48005:16:40"
},
"nativeSrc": "48005:60:40",
"nodeType": "YulFunctionCall",
"src": "48005:60:40"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "47992:9:40",
"nodeType": "YulIdentifier",
"src": "47992:9:40"
}
]
}
]
},
"name": "convert_t_rational_0_by_1_to_t_uint16",
"nativeSrc": "47915:156:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "47962:5:40",
"nodeType": "YulTypedName",
"src": "47962:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "47972:9:40",
"nodeType": "YulTypedName",
"src": "47972:9:40",
"type": ""
}
],
"src": "47915:156:40"
},
{
"body": {
"nativeSrc": "48149:73:40",
"nodeType": "YulBlock",
"src": "48149:73:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "48166:3:40",
"nodeType": "YulIdentifier",
"src": "48166:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "48209:5:40",
"nodeType": "YulIdentifier",
"src": "48209:5:40"
}
],
"functionName": {
"name": "convert_t_rational_0_by_1_to_t_uint16",
"nativeSrc": "48171:37:40",
"nodeType": "YulIdentifier",
"src": "48171:37:40"
},
"nativeSrc": "48171:44:40",
"nodeType": "YulFunctionCall",
"src": "48171:44:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "48159:6:40",
"nodeType": "YulIdentifier",
"src": "48159:6:40"
},
"nativeSrc": "48159:57:40",
"nodeType": "YulFunctionCall",
"src": "48159:57:40"
},
"nativeSrc": "48159:57:40",
"nodeType": "YulExpressionStatement",
"src": "48159:57:40"
}
]
},
"name": "abi_encode_t_rational_0_by_1_to_t_uint16_fromStack",
"nativeSrc": "48077:145:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "48137:5:40",
"nodeType": "YulTypedName",
"src": "48137:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "48144:3:40",
"nodeType": "YulTypedName",
"src": "48144:3:40",
"type": ""
}
],
"src": "48077:145:40"
},
{
"body": {
"nativeSrc": "48435:447:40",
"nodeType": "YulBlock",
"src": "48435:447:40",
"statements": [
{
"nativeSrc": "48445:27:40",
"nodeType": "YulAssignment",
"src": "48445:27:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "48457:9:40",
"nodeType": "YulIdentifier",
"src": "48457:9:40"
},
{
"kind": "number",
"nativeSrc": "48468:3:40",
"nodeType": "YulLiteral",
"src": "48468:3:40",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nativeSrc": "48453:3:40",
"nodeType": "YulIdentifier",
"src": "48453:3:40"
},
"nativeSrc": "48453:19:40",
"nodeType": "YulFunctionCall",
"src": "48453:19:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "48445:4:40",
"nodeType": "YulIdentifier",
"src": "48445:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "48526:6:40",
"nodeType": "YulIdentifier",
"src": "48526:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "48539:9:40",
"nodeType": "YulIdentifier",
"src": "48539:9:40"
},
{
"kind": "number",
"nativeSrc": "48550:1:40",
"nodeType": "YulLiteral",
"src": "48550:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "48535:3:40",
"nodeType": "YulIdentifier",
"src": "48535:3:40"
},
"nativeSrc": "48535:17:40",
"nodeType": "YulFunctionCall",
"src": "48535:17:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "48482:43:40",
"nodeType": "YulIdentifier",
"src": "48482:43:40"
},
"nativeSrc": "48482:71:40",
"nodeType": "YulFunctionCall",
"src": "48482:71:40"
},
"nativeSrc": "48482:71:40",
"nodeType": "YulExpressionStatement",
"src": "48482:71:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "48607:6:40",
"nodeType": "YulIdentifier",
"src": "48607:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "48620:9:40",
"nodeType": "YulIdentifier",
"src": "48620:9:40"
},
{
"kind": "number",
"nativeSrc": "48631:2:40",
"nodeType": "YulLiteral",
"src": "48631:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "48616:3:40",
"nodeType": "YulIdentifier",
"src": "48616:3:40"
},
"nativeSrc": "48616:18:40",
"nodeType": "YulFunctionCall",
"src": "48616:18:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "48563:43:40",
"nodeType": "YulIdentifier",
"src": "48563:43:40"
},
"nativeSrc": "48563:72:40",
"nodeType": "YulFunctionCall",
"src": "48563:72:40"
},
"nativeSrc": "48563:72:40",
"nodeType": "YulExpressionStatement",
"src": "48563:72:40"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "48696:6:40",
"nodeType": "YulIdentifier",
"src": "48696:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "48709:9:40",
"nodeType": "YulIdentifier",
"src": "48709:9:40"
},
{
"kind": "number",
"nativeSrc": "48720:2:40",
"nodeType": "YulLiteral",
"src": "48720:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "48705:3:40",
"nodeType": "YulIdentifier",
"src": "48705:3:40"
},
"nativeSrc": "48705:18:40",
"nodeType": "YulFunctionCall",
"src": "48705:18:40"
}
],
"functionName": {
"name": "abi_encode_t_rational_0_by_1_to_t_uint16_fromStack",
"nativeSrc": "48645:50:40",
"nodeType": "YulIdentifier",
"src": "48645:50:40"
},
"nativeSrc": "48645:79:40",
"nodeType": "YulFunctionCall",
"src": "48645:79:40"
},
"nativeSrc": "48645:79:40",
"nodeType": "YulExpressionStatement",
"src": "48645:79:40"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "48745:9:40",
"nodeType": "YulIdentifier",
"src": "48745:9:40"
},
{
"kind": "number",
"nativeSrc": "48756:2:40",
"nodeType": "YulLiteral",
"src": "48756:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "48741:3:40",
"nodeType": "YulIdentifier",
"src": "48741:3:40"
},
"nativeSrc": "48741:18:40",
"nodeType": "YulFunctionCall",
"src": "48741:18:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "48765:4:40",
"nodeType": "YulIdentifier",
"src": "48765:4:40"
},
{
"name": "headStart",
"nativeSrc": "48771:9:40",
"nodeType": "YulIdentifier",
"src": "48771:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "48761:3:40",
"nodeType": "YulIdentifier",
"src": "48761:3:40"
},
"nativeSrc": "48761:20:40",
"nodeType": "YulFunctionCall",
"src": "48761:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "48734:6:40",
"nodeType": "YulIdentifier",
"src": "48734:6:40"
},
"nativeSrc": "48734:48:40",
"nodeType": "YulFunctionCall",
"src": "48734:48:40"
},
"nativeSrc": "48734:48:40",
"nodeType": "YulExpressionStatement",
"src": "48734:48:40"
},
{
"nativeSrc": "48791:84:40",
"nodeType": "YulAssignment",
"src": "48791:84:40",
"value": {
"arguments": [
{
"name": "value3",
"nativeSrc": "48861:6:40",
"nodeType": "YulIdentifier",
"src": "48861:6:40"
},
{
"name": "tail",
"nativeSrc": "48870:4:40",
"nodeType": "YulIdentifier",
"src": "48870:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "48799:61:40",
"nodeType": "YulIdentifier",
"src": "48799:61:40"
},
"nativeSrc": "48799:76:40",
"nodeType": "YulFunctionCall",
"src": "48799:76:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "48791:4:40",
"nodeType": "YulIdentifier",
"src": "48791:4:40"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed",
"nativeSrc": "48228:654:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "48383:9:40",
"nodeType": "YulTypedName",
"src": "48383:9:40",
"type": ""
},
{
"name": "value3",
"nativeSrc": "48395:6:40",
"nodeType": "YulTypedName",
"src": "48395:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "48403:6:40",
"nodeType": "YulTypedName",
"src": "48403:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "48411:6:40",
"nodeType": "YulTypedName",
"src": "48411:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "48419:6:40",
"nodeType": "YulTypedName",
"src": "48419:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "48430:4:40",
"nodeType": "YulTypedName",
"src": "48430:4:40",
"type": ""
}
],
"src": "48228:654:40"
},
{
"body": {
"nativeSrc": "49012:204:40",
"nodeType": "YulBlock",
"src": "49012:204:40",
"statements": [
{
"nativeSrc": "49022:26:40",
"nodeType": "YulAssignment",
"src": "49022:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "49034:9:40",
"nodeType": "YulIdentifier",
"src": "49034:9:40"
},
{
"kind": "number",
"nativeSrc": "49045:2:40",
"nodeType": "YulLiteral",
"src": "49045:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49030:3:40",
"nodeType": "YulIdentifier",
"src": "49030:3:40"
},
"nativeSrc": "49030:18:40",
"nodeType": "YulFunctionCall",
"src": "49030:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "49022:4:40",
"nodeType": "YulIdentifier",
"src": "49022:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "49100:6:40",
"nodeType": "YulIdentifier",
"src": "49100:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "49113:9:40",
"nodeType": "YulIdentifier",
"src": "49113:9:40"
},
{
"kind": "number",
"nativeSrc": "49124:1:40",
"nodeType": "YulLiteral",
"src": "49124:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49109:3:40",
"nodeType": "YulIdentifier",
"src": "49109:3:40"
},
"nativeSrc": "49109:17:40",
"nodeType": "YulFunctionCall",
"src": "49109:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint32_to_t_uint32_fromStack",
"nativeSrc": "49058:41:40",
"nodeType": "YulIdentifier",
"src": "49058:41:40"
},
"nativeSrc": "49058:69:40",
"nodeType": "YulFunctionCall",
"src": "49058:69:40"
},
"nativeSrc": "49058:69:40",
"nodeType": "YulExpressionStatement",
"src": "49058:69:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "49181:6:40",
"nodeType": "YulIdentifier",
"src": "49181:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "49194:9:40",
"nodeType": "YulIdentifier",
"src": "49194:9:40"
},
{
"kind": "number",
"nativeSrc": "49205:2:40",
"nodeType": "YulLiteral",
"src": "49205:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49190:3:40",
"nodeType": "YulIdentifier",
"src": "49190:3:40"
},
"nativeSrc": "49190:18:40",
"nodeType": "YulFunctionCall",
"src": "49190:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "49137:43:40",
"nodeType": "YulIdentifier",
"src": "49137:43:40"
},
"nativeSrc": "49137:72:40",
"nodeType": "YulFunctionCall",
"src": "49137:72:40"
},
"nativeSrc": "49137:72:40",
"nodeType": "YulExpressionStatement",
"src": "49137:72:40"
}
]
},
"name": "abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed",
"nativeSrc": "48888:328:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "48976:9:40",
"nodeType": "YulTypedName",
"src": "48976:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "48988:6:40",
"nodeType": "YulTypedName",
"src": "48988:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "48996:6:40",
"nodeType": "YulTypedName",
"src": "48996:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "49007:4:40",
"nodeType": "YulTypedName",
"src": "49007:4:40",
"type": ""
}
],
"src": "48888:328:40"
},
{
"body": {
"nativeSrc": "49376:288:40",
"nodeType": "YulBlock",
"src": "49376:288:40",
"statements": [
{
"nativeSrc": "49386:26:40",
"nodeType": "YulAssignment",
"src": "49386:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "49398:9:40",
"nodeType": "YulIdentifier",
"src": "49398:9:40"
},
{
"kind": "number",
"nativeSrc": "49409:2:40",
"nodeType": "YulLiteral",
"src": "49409:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49394:3:40",
"nodeType": "YulIdentifier",
"src": "49394:3:40"
},
"nativeSrc": "49394:18:40",
"nodeType": "YulFunctionCall",
"src": "49394:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "49386:4:40",
"nodeType": "YulIdentifier",
"src": "49386:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "49466:6:40",
"nodeType": "YulIdentifier",
"src": "49466:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "49479:9:40",
"nodeType": "YulIdentifier",
"src": "49479:9:40"
},
{
"kind": "number",
"nativeSrc": "49490:1:40",
"nodeType": "YulLiteral",
"src": "49490:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49475:3:40",
"nodeType": "YulIdentifier",
"src": "49475:3:40"
},
"nativeSrc": "49475:17:40",
"nodeType": "YulFunctionCall",
"src": "49475:17:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "49422:43:40",
"nodeType": "YulIdentifier",
"src": "49422:43:40"
},
"nativeSrc": "49422:71:40",
"nodeType": "YulFunctionCall",
"src": "49422:71:40"
},
"nativeSrc": "49422:71:40",
"nodeType": "YulExpressionStatement",
"src": "49422:71:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "49547:6:40",
"nodeType": "YulIdentifier",
"src": "49547:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "49560:9:40",
"nodeType": "YulIdentifier",
"src": "49560:9:40"
},
{
"kind": "number",
"nativeSrc": "49571:2:40",
"nodeType": "YulLiteral",
"src": "49571:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49556:3:40",
"nodeType": "YulIdentifier",
"src": "49556:3:40"
},
"nativeSrc": "49556:18:40",
"nodeType": "YulFunctionCall",
"src": "49556:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "49503:43:40",
"nodeType": "YulIdentifier",
"src": "49503:43:40"
},
"nativeSrc": "49503:72:40",
"nodeType": "YulFunctionCall",
"src": "49503:72:40"
},
"nativeSrc": "49503:72:40",
"nodeType": "YulExpressionStatement",
"src": "49503:72:40"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "49629:6:40",
"nodeType": "YulIdentifier",
"src": "49629:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "49642:9:40",
"nodeType": "YulIdentifier",
"src": "49642:9:40"
},
{
"kind": "number",
"nativeSrc": "49653:2:40",
"nodeType": "YulLiteral",
"src": "49653:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49638:3:40",
"nodeType": "YulIdentifier",
"src": "49638:3:40"
},
"nativeSrc": "49638:18:40",
"nodeType": "YulFunctionCall",
"src": "49638:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "49585:43:40",
"nodeType": "YulIdentifier",
"src": "49585:43:40"
},
"nativeSrc": "49585:72:40",
"nodeType": "YulFunctionCall",
"src": "49585:72:40"
},
"nativeSrc": "49585:72:40",
"nodeType": "YulExpressionStatement",
"src": "49585:72:40"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
"nativeSrc": "49222:442:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "49332:9:40",
"nodeType": "YulTypedName",
"src": "49332:9:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "49344:6:40",
"nodeType": "YulTypedName",
"src": "49344:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "49352:6:40",
"nodeType": "YulTypedName",
"src": "49352:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "49360:6:40",
"nodeType": "YulTypedName",
"src": "49360:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "49371:4:40",
"nodeType": "YulTypedName",
"src": "49371:4:40",
"type": ""
}
],
"src": "49222:442:40"
},
{
"body": {
"nativeSrc": "49832:344:40",
"nodeType": "YulBlock",
"src": "49832:344:40",
"statements": [
{
"nativeSrc": "49842:26:40",
"nodeType": "YulAssignment",
"src": "49842:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "49854:9:40",
"nodeType": "YulIdentifier",
"src": "49854:9:40"
},
{
"kind": "number",
"nativeSrc": "49865:2:40",
"nodeType": "YulLiteral",
"src": "49865:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49850:3:40",
"nodeType": "YulIdentifier",
"src": "49850:3:40"
},
"nativeSrc": "49850:18:40",
"nodeType": "YulFunctionCall",
"src": "49850:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "49842:4:40",
"nodeType": "YulIdentifier",
"src": "49842:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "49889:9:40",
"nodeType": "YulIdentifier",
"src": "49889:9:40"
},
{
"kind": "number",
"nativeSrc": "49900:1:40",
"nodeType": "YulLiteral",
"src": "49900:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "49885:3:40",
"nodeType": "YulIdentifier",
"src": "49885:3:40"
},
"nativeSrc": "49885:17:40",
"nodeType": "YulFunctionCall",
"src": "49885:17:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "49908:4:40",
"nodeType": "YulIdentifier",
"src": "49908:4:40"
},
{
"name": "headStart",
"nativeSrc": "49914:9:40",
"nodeType": "YulIdentifier",
"src": "49914:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "49904:3:40",
"nodeType": "YulIdentifier",
"src": "49904:3:40"
},
"nativeSrc": "49904:20:40",
"nodeType": "YulFunctionCall",
"src": "49904:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "49878:6:40",
"nodeType": "YulIdentifier",
"src": "49878:6:40"
},
"nativeSrc": "49878:47:40",
"nodeType": "YulFunctionCall",
"src": "49878:47:40"
},
"nativeSrc": "49878:47:40",
"nodeType": "YulExpressionStatement",
"src": "49878:47:40"
},
{
"nativeSrc": "49934:84:40",
"nodeType": "YulAssignment",
"src": "49934:84:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "50004:6:40",
"nodeType": "YulIdentifier",
"src": "50004:6:40"
},
{
"name": "tail",
"nativeSrc": "50013:4:40",
"nodeType": "YulIdentifier",
"src": "50013:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "49942:61:40",
"nodeType": "YulIdentifier",
"src": "49942:61:40"
},
"nativeSrc": "49942:76:40",
"nodeType": "YulFunctionCall",
"src": "49942:76:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "49934:4:40",
"nodeType": "YulIdentifier",
"src": "49934:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "50039:9:40",
"nodeType": "YulIdentifier",
"src": "50039:9:40"
},
{
"kind": "number",
"nativeSrc": "50050:2:40",
"nodeType": "YulLiteral",
"src": "50050:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "50035:3:40",
"nodeType": "YulIdentifier",
"src": "50035:3:40"
},
"nativeSrc": "50035:18:40",
"nodeType": "YulFunctionCall",
"src": "50035:18:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "50059:4:40",
"nodeType": "YulIdentifier",
"src": "50059:4:40"
},
{
"name": "headStart",
"nativeSrc": "50065:9:40",
"nodeType": "YulIdentifier",
"src": "50065:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "50055:3:40",
"nodeType": "YulIdentifier",
"src": "50055:3:40"
},
"nativeSrc": "50055:20:40",
"nodeType": "YulFunctionCall",
"src": "50055:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "50028:6:40",
"nodeType": "YulIdentifier",
"src": "50028:6:40"
},
"nativeSrc": "50028:48:40",
"nodeType": "YulFunctionCall",
"src": "50028:48:40"
},
"nativeSrc": "50028:48:40",
"nodeType": "YulExpressionStatement",
"src": "50028:48:40"
},
{
"nativeSrc": "50085:84:40",
"nodeType": "YulAssignment",
"src": "50085:84:40",
"value": {
"arguments": [
{
"name": "value1",
"nativeSrc": "50155:6:40",
"nodeType": "YulIdentifier",
"src": "50155:6:40"
},
{
"name": "tail",
"nativeSrc": "50164:4:40",
"nodeType": "YulIdentifier",
"src": "50164:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nativeSrc": "50093:61:40",
"nodeType": "YulIdentifier",
"src": "50093:61:40"
},
"nativeSrc": "50093:76:40",
"nodeType": "YulFunctionCall",
"src": "50093:76:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "50085:4:40",
"nodeType": "YulIdentifier",
"src": "50085:4:40"
}
]
}
]
},
"name": "abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
"nativeSrc": "49670:506:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "49796:9:40",
"nodeType": "YulTypedName",
"src": "49796:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "49808:6:40",
"nodeType": "YulTypedName",
"src": "49808:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "49816:6:40",
"nodeType": "YulTypedName",
"src": "49816:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "49827:4:40",
"nodeType": "YulTypedName",
"src": "49827:4:40",
"type": ""
}
],
"src": "49670:506:40"
},
{
"body": {
"nativeSrc": "50242:77:40",
"nodeType": "YulBlock",
"src": "50242:77:40",
"statements": [
{
"nativeSrc": "50252:22:40",
"nodeType": "YulAssignment",
"src": "50252:22:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "50267:6:40",
"nodeType": "YulIdentifier",
"src": "50267:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "50261:5:40",
"nodeType": "YulIdentifier",
"src": "50261:5:40"
},
"nativeSrc": "50261:13:40",
"nodeType": "YulFunctionCall",
"src": "50261:13:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "50252:5:40",
"nodeType": "YulIdentifier",
"src": "50252:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "50307:5:40",
"nodeType": "YulIdentifier",
"src": "50307:5:40"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nativeSrc": "50283:23:40",
"nodeType": "YulIdentifier",
"src": "50283:23:40"
},
"nativeSrc": "50283:30:40",
"nodeType": "YulFunctionCall",
"src": "50283:30:40"
},
"nativeSrc": "50283:30:40",
"nodeType": "YulExpressionStatement",
"src": "50283:30:40"
}
]
},
"name": "abi_decode_t_bool_fromMemory",
"nativeSrc": "50182:137:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "50220:6:40",
"nodeType": "YulTypedName",
"src": "50220:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "50228:3:40",
"nodeType": "YulTypedName",
"src": "50228:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "50236:5:40",
"nodeType": "YulTypedName",
"src": "50236:5:40",
"type": ""
}
],
"src": "50182:137:40"
},
{
"body": {
"nativeSrc": "50399:271:40",
"nodeType": "YulBlock",
"src": "50399:271:40",
"statements": [
{
"body": {
"nativeSrc": "50445:83:40",
"nodeType": "YulBlock",
"src": "50445:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "50447:77:40",
"nodeType": "YulIdentifier",
"src": "50447:77:40"
},
"nativeSrc": "50447:79:40",
"nodeType": "YulFunctionCall",
"src": "50447:79:40"
},
"nativeSrc": "50447:79:40",
"nodeType": "YulExpressionStatement",
"src": "50447:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "50420:7:40",
"nodeType": "YulIdentifier",
"src": "50420:7:40"
},
{
"name": "headStart",
"nativeSrc": "50429:9:40",
"nodeType": "YulIdentifier",
"src": "50429:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "50416:3:40",
"nodeType": "YulIdentifier",
"src": "50416:3:40"
},
"nativeSrc": "50416:23:40",
"nodeType": "YulFunctionCall",
"src": "50416:23:40"
},
{
"kind": "number",
"nativeSrc": "50441:2:40",
"nodeType": "YulLiteral",
"src": "50441:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "50412:3:40",
"nodeType": "YulIdentifier",
"src": "50412:3:40"
},
"nativeSrc": "50412:32:40",
"nodeType": "YulFunctionCall",
"src": "50412:32:40"
},
"nativeSrc": "50409:119:40",
"nodeType": "YulIf",
"src": "50409:119:40"
},
{
"nativeSrc": "50538:125:40",
"nodeType": "YulBlock",
"src": "50538:125:40",
"statements": [
{
"nativeSrc": "50553:15:40",
"nodeType": "YulVariableDeclaration",
"src": "50553:15:40",
"value": {
"kind": "number",
"nativeSrc": "50567:1:40",
"nodeType": "YulLiteral",
"src": "50567:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "50557:6:40",
"nodeType": "YulTypedName",
"src": "50557:6:40",
"type": ""
}
]
},
{
"nativeSrc": "50582:71:40",
"nodeType": "YulAssignment",
"src": "50582:71:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "50625:9:40",
"nodeType": "YulIdentifier",
"src": "50625:9:40"
},
{
"name": "offset",
"nativeSrc": "50636:6:40",
"nodeType": "YulIdentifier",
"src": "50636:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "50621:3:40",
"nodeType": "YulIdentifier",
"src": "50621:3:40"
},
"nativeSrc": "50621:22:40",
"nodeType": "YulFunctionCall",
"src": "50621:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "50645:7:40",
"nodeType": "YulIdentifier",
"src": "50645:7:40"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nativeSrc": "50592:28:40",
"nodeType": "YulIdentifier",
"src": "50592:28:40"
},
"nativeSrc": "50592:61:40",
"nodeType": "YulFunctionCall",
"src": "50592:61:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "50582:6:40",
"nodeType": "YulIdentifier",
"src": "50582:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool_fromMemory",
"nativeSrc": "50325:345:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "50369:9:40",
"nodeType": "YulTypedName",
"src": "50369:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "50380:7:40",
"nodeType": "YulTypedName",
"src": "50380:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "50392:6:40",
"nodeType": "YulTypedName",
"src": "50392:6:40",
"type": ""
}
],
"src": "50325:345:40"
},
{
"body": {
"nativeSrc": "50761:73:40",
"nodeType": "YulBlock",
"src": "50761:73:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "50778:3:40",
"nodeType": "YulIdentifier",
"src": "50778:3:40"
},
{
"name": "length",
"nativeSrc": "50783:6:40",
"nodeType": "YulIdentifier",
"src": "50783:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "50771:6:40",
"nodeType": "YulIdentifier",
"src": "50771:6:40"
},
"nativeSrc": "50771:19:40",
"nodeType": "YulFunctionCall",
"src": "50771:19:40"
},
"nativeSrc": "50771:19:40",
"nodeType": "YulExpressionStatement",
"src": "50771:19:40"
},
{
"nativeSrc": "50799:29:40",
"nodeType": "YulAssignment",
"src": "50799:29:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "50818:3:40",
"nodeType": "YulIdentifier",
"src": "50818:3:40"
},
{
"kind": "number",
"nativeSrc": "50823:4:40",
"nodeType": "YulLiteral",
"src": "50823:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "50814:3:40",
"nodeType": "YulIdentifier",
"src": "50814:3:40"
},
"nativeSrc": "50814:14:40",
"nodeType": "YulFunctionCall",
"src": "50814:14:40"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "50799:11:40",
"nodeType": "YulIdentifier",
"src": "50799:11:40"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr",
"nativeSrc": "50676:158:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "50733:3:40",
"nodeType": "YulTypedName",
"src": "50733:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "50738:6:40",
"nodeType": "YulTypedName",
"src": "50738:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "50749:11:40",
"nodeType": "YulTypedName",
"src": "50749:11:40",
"type": ""
}
],
"src": "50676:158:40"
},
{
"body": {
"nativeSrc": "50920:273:40",
"nodeType": "YulBlock",
"src": "50920:273:40",
"statements": [
{
"nativeSrc": "50930:52:40",
"nodeType": "YulVariableDeclaration",
"src": "50930:52:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "50976:5:40",
"nodeType": "YulIdentifier",
"src": "50976:5:40"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "50944:31:40",
"nodeType": "YulIdentifier",
"src": "50944:31:40"
},
"nativeSrc": "50944:38:40",
"nodeType": "YulFunctionCall",
"src": "50944:38:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "50934:6:40",
"nodeType": "YulTypedName",
"src": "50934:6:40",
"type": ""
}
]
},
{
"nativeSrc": "50991:67:40",
"nodeType": "YulAssignment",
"src": "50991:67:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "51046:3:40",
"nodeType": "YulIdentifier",
"src": "51046:3:40"
},
{
"name": "length",
"nativeSrc": "51051:6:40",
"nodeType": "YulIdentifier",
"src": "51051:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr",
"nativeSrc": "50998:47:40",
"nodeType": "YulIdentifier",
"src": "50998:47:40"
},
"nativeSrc": "50998:60:40",
"nodeType": "YulFunctionCall",
"src": "50998:60:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "50991:3:40",
"nodeType": "YulIdentifier",
"src": "50991:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "51106:5:40",
"nodeType": "YulIdentifier",
"src": "51106:5:40"
},
{
"kind": "number",
"nativeSrc": "51113:4:40",
"nodeType": "YulLiteral",
"src": "51113:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51102:3:40",
"nodeType": "YulIdentifier",
"src": "51102:3:40"
},
"nativeSrc": "51102:16:40",
"nodeType": "YulFunctionCall",
"src": "51102:16:40"
},
{
"name": "pos",
"nativeSrc": "51120:3:40",
"nodeType": "YulIdentifier",
"src": "51120:3:40"
},
{
"name": "length",
"nativeSrc": "51125:6:40",
"nodeType": "YulIdentifier",
"src": "51125:6:40"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "51067:34:40",
"nodeType": "YulIdentifier",
"src": "51067:34:40"
},
"nativeSrc": "51067:65:40",
"nodeType": "YulFunctionCall",
"src": "51067:65:40"
},
"nativeSrc": "51067:65:40",
"nodeType": "YulExpressionStatement",
"src": "51067:65:40"
},
{
"nativeSrc": "51141:46:40",
"nodeType": "YulAssignment",
"src": "51141:46:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "51152:3:40",
"nodeType": "YulIdentifier",
"src": "51152:3:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "51179:6:40",
"nodeType": "YulIdentifier",
"src": "51179:6:40"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "51157:21:40",
"nodeType": "YulIdentifier",
"src": "51157:21:40"
},
"nativeSrc": "51157:29:40",
"nodeType": "YulFunctionCall",
"src": "51157:29:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51148:3:40",
"nodeType": "YulIdentifier",
"src": "51148:3:40"
},
"nativeSrc": "51148:39:40",
"nodeType": "YulFunctionCall",
"src": "51148:39:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "51141:3:40",
"nodeType": "YulIdentifier",
"src": "51141:3:40"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nativeSrc": "50840:353:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "50901:5:40",
"nodeType": "YulTypedName",
"src": "50901:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "50908:3:40",
"nodeType": "YulTypedName",
"src": "50908:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "50916:3:40",
"nodeType": "YulTypedName",
"src": "50916:3:40",
"type": ""
}
],
"src": "50840:353:40"
},
{
"body": {
"nativeSrc": "51248:50:40",
"nodeType": "YulBlock",
"src": "51248:50:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "51265:3:40",
"nodeType": "YulIdentifier",
"src": "51265:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "51285:5:40",
"nodeType": "YulIdentifier",
"src": "51285:5:40"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "51270:14:40",
"nodeType": "YulIdentifier",
"src": "51270:14:40"
},
"nativeSrc": "51270:21:40",
"nodeType": "YulFunctionCall",
"src": "51270:21:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "51258:6:40",
"nodeType": "YulIdentifier",
"src": "51258:6:40"
},
"nativeSrc": "51258:34:40",
"nodeType": "YulFunctionCall",
"src": "51258:34:40"
},
"nativeSrc": "51258:34:40",
"nodeType": "YulExpressionStatement",
"src": "51258:34:40"
}
]
},
"name": "abi_encode_t_bool_to_t_bool",
"nativeSrc": "51199:99:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "51236:5:40",
"nodeType": "YulTypedName",
"src": "51236:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "51243:3:40",
"nodeType": "YulTypedName",
"src": "51243:3:40",
"type": ""
}
],
"src": "51199:99:40"
},
{
"body": {
"nativeSrc": "51496:1083:40",
"nodeType": "YulBlock",
"src": "51496:1083:40",
"statements": [
{
"nativeSrc": "51506:26:40",
"nodeType": "YulVariableDeclaration",
"src": "51506:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "51522:3:40",
"nodeType": "YulIdentifier",
"src": "51522:3:40"
},
{
"kind": "number",
"nativeSrc": "51527:4:40",
"nodeType": "YulLiteral",
"src": "51527:4:40",
"type": "",
"value": "0xa0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51518:3:40",
"nodeType": "YulIdentifier",
"src": "51518:3:40"
},
"nativeSrc": "51518:14:40",
"nodeType": "YulFunctionCall",
"src": "51518:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "51510:4:40",
"nodeType": "YulTypedName",
"src": "51510:4:40",
"type": ""
}
]
},
{
"nativeSrc": "51542:164:40",
"nodeType": "YulBlock",
"src": "51542:164:40",
"statements": [
{
"nativeSrc": "51579:43:40",
"nodeType": "YulVariableDeclaration",
"src": "51579:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "51609:5:40",
"nodeType": "YulIdentifier",
"src": "51609:5:40"
},
{
"kind": "number",
"nativeSrc": "51616:4:40",
"nodeType": "YulLiteral",
"src": "51616:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51605:3:40",
"nodeType": "YulIdentifier",
"src": "51605:3:40"
},
"nativeSrc": "51605:16:40",
"nodeType": "YulFunctionCall",
"src": "51605:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "51599:5:40",
"nodeType": "YulIdentifier",
"src": "51599:5:40"
},
"nativeSrc": "51599:23:40",
"nodeType": "YulFunctionCall",
"src": "51599:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "51583:12:40",
"nodeType": "YulTypedName",
"src": "51583:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "51667:12:40",
"nodeType": "YulIdentifier",
"src": "51667:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "51685:3:40",
"nodeType": "YulIdentifier",
"src": "51685:3:40"
},
{
"kind": "number",
"nativeSrc": "51690:4:40",
"nodeType": "YulLiteral",
"src": "51690:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51681:3:40",
"nodeType": "YulIdentifier",
"src": "51681:3:40"
},
"nativeSrc": "51681:14:40",
"nodeType": "YulFunctionCall",
"src": "51681:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint32_to_t_uint32",
"nativeSrc": "51635:31:40",
"nodeType": "YulIdentifier",
"src": "51635:31:40"
},
"nativeSrc": "51635:61:40",
"nodeType": "YulFunctionCall",
"src": "51635:61:40"
},
"nativeSrc": "51635:61:40",
"nodeType": "YulExpressionStatement",
"src": "51635:61:40"
}
]
},
{
"nativeSrc": "51716:168:40",
"nodeType": "YulBlock",
"src": "51716:168:40",
"statements": [
{
"nativeSrc": "51755:43:40",
"nodeType": "YulVariableDeclaration",
"src": "51755:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "51785:5:40",
"nodeType": "YulIdentifier",
"src": "51785:5:40"
},
{
"kind": "number",
"nativeSrc": "51792:4:40",
"nodeType": "YulLiteral",
"src": "51792:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51781:3:40",
"nodeType": "YulIdentifier",
"src": "51781:3:40"
},
"nativeSrc": "51781:16:40",
"nodeType": "YulFunctionCall",
"src": "51781:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "51775:5:40",
"nodeType": "YulIdentifier",
"src": "51775:5:40"
},
"nativeSrc": "51775:23:40",
"nodeType": "YulFunctionCall",
"src": "51775:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "51759:12:40",
"nodeType": "YulTypedName",
"src": "51759:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "51845:12:40",
"nodeType": "YulIdentifier",
"src": "51845:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "51863:3:40",
"nodeType": "YulIdentifier",
"src": "51863:3:40"
},
{
"kind": "number",
"nativeSrc": "51868:4:40",
"nodeType": "YulLiteral",
"src": "51868:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51859:3:40",
"nodeType": "YulIdentifier",
"src": "51859:3:40"
},
"nativeSrc": "51859:14:40",
"nodeType": "YulFunctionCall",
"src": "51859:14:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32",
"nativeSrc": "51811:33:40",
"nodeType": "YulIdentifier",
"src": "51811:33:40"
},
"nativeSrc": "51811:63:40",
"nodeType": "YulFunctionCall",
"src": "51811:63:40"
},
"nativeSrc": "51811:63:40",
"nodeType": "YulExpressionStatement",
"src": "51811:63:40"
}
]
},
{
"nativeSrc": "51894:236:40",
"nodeType": "YulBlock",
"src": "51894:236:40",
"statements": [
{
"nativeSrc": "51932:43:40",
"nodeType": "YulVariableDeclaration",
"src": "51932:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "51962:5:40",
"nodeType": "YulIdentifier",
"src": "51962:5:40"
},
{
"kind": "number",
"nativeSrc": "51969:4:40",
"nodeType": "YulLiteral",
"src": "51969:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51958:3:40",
"nodeType": "YulIdentifier",
"src": "51958:3:40"
},
"nativeSrc": "51958:16:40",
"nodeType": "YulFunctionCall",
"src": "51958:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "51952:5:40",
"nodeType": "YulIdentifier",
"src": "51952:5:40"
},
"nativeSrc": "51952:23:40",
"nodeType": "YulFunctionCall",
"src": "51952:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "51936:12:40",
"nodeType": "YulTypedName",
"src": "51936:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nativeSrc": "52000:3:40",
"nodeType": "YulIdentifier",
"src": "52000:3:40"
},
{
"kind": "number",
"nativeSrc": "52005:4:40",
"nodeType": "YulLiteral",
"src": "52005:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "51996:3:40",
"nodeType": "YulIdentifier",
"src": "51996:3:40"
},
"nativeSrc": "51996:14:40",
"nodeType": "YulFunctionCall",
"src": "51996:14:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "52016:4:40",
"nodeType": "YulIdentifier",
"src": "52016:4:40"
},
{
"name": "pos",
"nativeSrc": "52022:3:40",
"nodeType": "YulIdentifier",
"src": "52022:3:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "52012:3:40",
"nodeType": "YulIdentifier",
"src": "52012:3:40"
},
"nativeSrc": "52012:14:40",
"nodeType": "YulFunctionCall",
"src": "52012:14:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "51989:6:40",
"nodeType": "YulIdentifier",
"src": "51989:6:40"
},
"nativeSrc": "51989:38:40",
"nodeType": "YulFunctionCall",
"src": "51989:38:40"
},
"nativeSrc": "51989:38:40",
"nodeType": "YulExpressionStatement",
"src": "51989:38:40"
},
{
"nativeSrc": "52040:79:40",
"nodeType": "YulAssignment",
"src": "52040:79:40",
"value": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "52100:12:40",
"nodeType": "YulIdentifier",
"src": "52100:12:40"
},
{
"name": "tail",
"nativeSrc": "52114:4:40",
"nodeType": "YulIdentifier",
"src": "52114:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nativeSrc": "52048:51:40",
"nodeType": "YulIdentifier",
"src": "52048:51:40"
},
"nativeSrc": "52048:71:40",
"nodeType": "YulFunctionCall",
"src": "52048:71:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "52040:4:40",
"nodeType": "YulIdentifier",
"src": "52040:4:40"
}
]
}
]
},
{
"nativeSrc": "52140:236:40",
"nodeType": "YulBlock",
"src": "52140:236:40",
"statements": [
{
"nativeSrc": "52178:43:40",
"nodeType": "YulVariableDeclaration",
"src": "52178:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "52208:5:40",
"nodeType": "YulIdentifier",
"src": "52208:5:40"
},
{
"kind": "number",
"nativeSrc": "52215:4:40",
"nodeType": "YulLiteral",
"src": "52215:4:40",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nativeSrc": "52204:3:40",
"nodeType": "YulIdentifier",
"src": "52204:3:40"
},
"nativeSrc": "52204:16:40",
"nodeType": "YulFunctionCall",
"src": "52204:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "52198:5:40",
"nodeType": "YulIdentifier",
"src": "52198:5:40"
},
"nativeSrc": "52198:23:40",
"nodeType": "YulFunctionCall",
"src": "52198:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "52182:12:40",
"nodeType": "YulTypedName",
"src": "52182:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nativeSrc": "52246:3:40",
"nodeType": "YulIdentifier",
"src": "52246:3:40"
},
{
"kind": "number",
"nativeSrc": "52251:4:40",
"nodeType": "YulLiteral",
"src": "52251:4:40",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nativeSrc": "52242:3:40",
"nodeType": "YulIdentifier",
"src": "52242:3:40"
},
"nativeSrc": "52242:14:40",
"nodeType": "YulFunctionCall",
"src": "52242:14:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "52262:4:40",
"nodeType": "YulIdentifier",
"src": "52262:4:40"
},
{
"name": "pos",
"nativeSrc": "52268:3:40",
"nodeType": "YulIdentifier",
"src": "52268:3:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "52258:3:40",
"nodeType": "YulIdentifier",
"src": "52258:3:40"
},
"nativeSrc": "52258:14:40",
"nodeType": "YulFunctionCall",
"src": "52258:14:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "52235:6:40",
"nodeType": "YulIdentifier",
"src": "52235:6:40"
},
"nativeSrc": "52235:38:40",
"nodeType": "YulFunctionCall",
"src": "52235:38:40"
},
"nativeSrc": "52235:38:40",
"nodeType": "YulExpressionStatement",
"src": "52235:38:40"
},
{
"nativeSrc": "52286:79:40",
"nodeType": "YulAssignment",
"src": "52286:79:40",
"value": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "52346:12:40",
"nodeType": "YulIdentifier",
"src": "52346:12:40"
},
{
"name": "tail",
"nativeSrc": "52360:4:40",
"nodeType": "YulIdentifier",
"src": "52360:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nativeSrc": "52294:51:40",
"nodeType": "YulIdentifier",
"src": "52294:51:40"
},
"nativeSrc": "52294:71:40",
"nodeType": "YulFunctionCall",
"src": "52294:71:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "52286:4:40",
"nodeType": "YulIdentifier",
"src": "52286:4:40"
}
]
}
]
},
{
"nativeSrc": "52386:166:40",
"nodeType": "YulBlock",
"src": "52386:166:40",
"statements": [
{
"nativeSrc": "52429:43:40",
"nodeType": "YulVariableDeclaration",
"src": "52429:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "52459:5:40",
"nodeType": "YulIdentifier",
"src": "52459:5:40"
},
{
"kind": "number",
"nativeSrc": "52466:4:40",
"nodeType": "YulLiteral",
"src": "52466:4:40",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nativeSrc": "52455:3:40",
"nodeType": "YulIdentifier",
"src": "52455:3:40"
},
"nativeSrc": "52455:16:40",
"nodeType": "YulFunctionCall",
"src": "52455:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "52449:5:40",
"nodeType": "YulIdentifier",
"src": "52449:5:40"
},
"nativeSrc": "52449:23:40",
"nodeType": "YulFunctionCall",
"src": "52449:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "52433:12:40",
"nodeType": "YulTypedName",
"src": "52433:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "52513:12:40",
"nodeType": "YulIdentifier",
"src": "52513:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "52531:3:40",
"nodeType": "YulIdentifier",
"src": "52531:3:40"
},
{
"kind": "number",
"nativeSrc": "52536:4:40",
"nodeType": "YulLiteral",
"src": "52536:4:40",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nativeSrc": "52527:3:40",
"nodeType": "YulIdentifier",
"src": "52527:3:40"
},
"nativeSrc": "52527:14:40",
"nodeType": "YulFunctionCall",
"src": "52527:14:40"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool",
"nativeSrc": "52485:27:40",
"nodeType": "YulIdentifier",
"src": "52485:27:40"
},
"nativeSrc": "52485:57:40",
"nodeType": "YulFunctionCall",
"src": "52485:57:40"
},
"nativeSrc": "52485:57:40",
"nodeType": "YulExpressionStatement",
"src": "52485:57:40"
}
]
},
{
"nativeSrc": "52562:11:40",
"nodeType": "YulAssignment",
"src": "52562:11:40",
"value": {
"name": "tail",
"nativeSrc": "52569:4:40",
"nodeType": "YulIdentifier",
"src": "52569:4:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "52562:3:40",
"nodeType": "YulIdentifier",
"src": "52562:3:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_MessagingParams_$20_memory_ptr_to_t_struct$_MessagingParams_$20_memory_ptr_fromStack",
"nativeSrc": "51360:1219:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "51475:5:40",
"nodeType": "YulTypedName",
"src": "51475:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "51482:3:40",
"nodeType": "YulTypedName",
"src": "51482:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "51491:3:40",
"nodeType": "YulTypedName",
"src": "51491:3:40",
"type": ""
}
],
"src": "51360:1219:40"
},
{
"body": {
"nativeSrc": "52773:319:40",
"nodeType": "YulBlock",
"src": "52773:319:40",
"statements": [
{
"nativeSrc": "52783:26:40",
"nodeType": "YulAssignment",
"src": "52783:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "52795:9:40",
"nodeType": "YulIdentifier",
"src": "52795:9:40"
},
{
"kind": "number",
"nativeSrc": "52806:2:40",
"nodeType": "YulLiteral",
"src": "52806:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "52791:3:40",
"nodeType": "YulIdentifier",
"src": "52791:3:40"
},
"nativeSrc": "52791:18:40",
"nodeType": "YulFunctionCall",
"src": "52791:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "52783:4:40",
"nodeType": "YulIdentifier",
"src": "52783:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "52830:9:40",
"nodeType": "YulIdentifier",
"src": "52830:9:40"
},
{
"kind": "number",
"nativeSrc": "52841:1:40",
"nodeType": "YulLiteral",
"src": "52841:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "52826:3:40",
"nodeType": "YulIdentifier",
"src": "52826:3:40"
},
"nativeSrc": "52826:17:40",
"nodeType": "YulFunctionCall",
"src": "52826:17:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "52849:4:40",
"nodeType": "YulIdentifier",
"src": "52849:4:40"
},
{
"name": "headStart",
"nativeSrc": "52855:9:40",
"nodeType": "YulIdentifier",
"src": "52855:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "52845:3:40",
"nodeType": "YulIdentifier",
"src": "52845:3:40"
},
"nativeSrc": "52845:20:40",
"nodeType": "YulFunctionCall",
"src": "52845:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "52819:6:40",
"nodeType": "YulIdentifier",
"src": "52819:6:40"
},
"nativeSrc": "52819:47:40",
"nodeType": "YulFunctionCall",
"src": "52819:47:40"
},
"nativeSrc": "52819:47:40",
"nodeType": "YulExpressionStatement",
"src": "52819:47:40"
},
{
"nativeSrc": "52875:128:40",
"nodeType": "YulAssignment",
"src": "52875:128:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "52989:6:40",
"nodeType": "YulIdentifier",
"src": "52989:6:40"
},
{
"name": "tail",
"nativeSrc": "52998:4:40",
"nodeType": "YulIdentifier",
"src": "52998:4:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_MessagingParams_$20_memory_ptr_to_t_struct$_MessagingParams_$20_memory_ptr_fromStack",
"nativeSrc": "52883:105:40",
"nodeType": "YulIdentifier",
"src": "52883:105:40"
},
"nativeSrc": "52883:120:40",
"nodeType": "YulFunctionCall",
"src": "52883:120:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "52875:4:40",
"nodeType": "YulIdentifier",
"src": "52875:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "53057:6:40",
"nodeType": "YulIdentifier",
"src": "53057:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "53070:9:40",
"nodeType": "YulIdentifier",
"src": "53070:9:40"
},
{
"kind": "number",
"nativeSrc": "53081:2:40",
"nodeType": "YulLiteral",
"src": "53081:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "53066:3:40",
"nodeType": "YulIdentifier",
"src": "53066:3:40"
},
"nativeSrc": "53066:18:40",
"nodeType": "YulFunctionCall",
"src": "53066:18:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "53013:43:40",
"nodeType": "YulIdentifier",
"src": "53013:43:40"
},
"nativeSrc": "53013:72:40",
"nodeType": "YulFunctionCall",
"src": "53013:72:40"
},
"nativeSrc": "53013:72:40",
"nodeType": "YulExpressionStatement",
"src": "53013:72:40"
}
]
},
"name": "abi_encode_tuple_t_struct$_MessagingParams_$20_memory_ptr_t_address__to_t_struct$_MessagingParams_$20_memory_ptr_t_address__fromStack_reversed",
"nativeSrc": "52585:507:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "52737:9:40",
"nodeType": "YulTypedName",
"src": "52737:9:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "52749:6:40",
"nodeType": "YulTypedName",
"src": "52749:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "52757:6:40",
"nodeType": "YulTypedName",
"src": "52757:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "52768:4:40",
"nodeType": "YulTypedName",
"src": "52768:4:40",
"type": ""
}
],
"src": "52585:507:40"
},
{
"body": {
"nativeSrc": "53219:527:40",
"nodeType": "YulBlock",
"src": "53219:527:40",
"statements": [
{
"body": {
"nativeSrc": "53263:83:40",
"nodeType": "YulBlock",
"src": "53263:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nativeSrc": "53265:77:40",
"nodeType": "YulIdentifier",
"src": "53265:77:40"
},
"nativeSrc": "53265:79:40",
"nodeType": "YulFunctionCall",
"src": "53265:79:40"
},
"nativeSrc": "53265:79:40",
"nodeType": "YulExpressionStatement",
"src": "53265:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nativeSrc": "53240:3:40",
"nodeType": "YulIdentifier",
"src": "53240:3:40"
},
{
"name": "headStart",
"nativeSrc": "53245:9:40",
"nodeType": "YulIdentifier",
"src": "53245:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "53236:3:40",
"nodeType": "YulIdentifier",
"src": "53236:3:40"
},
"nativeSrc": "53236:19:40",
"nodeType": "YulFunctionCall",
"src": "53236:19:40"
},
{
"kind": "number",
"nativeSrc": "53257:4:40",
"nodeType": "YulLiteral",
"src": "53257:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "53232:3:40",
"nodeType": "YulIdentifier",
"src": "53232:3:40"
},
"nativeSrc": "53232:30:40",
"nodeType": "YulFunctionCall",
"src": "53232:30:40"
},
"nativeSrc": "53229:117:40",
"nodeType": "YulIf",
"src": "53229:117:40"
},
{
"nativeSrc": "53355:30:40",
"nodeType": "YulAssignment",
"src": "53355:30:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "53380:4:40",
"nodeType": "YulLiteral",
"src": "53380:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "53364:15:40",
"nodeType": "YulIdentifier",
"src": "53364:15:40"
},
"nativeSrc": "53364:21:40",
"nodeType": "YulFunctionCall",
"src": "53364:21:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "53355:5:40",
"nodeType": "YulIdentifier",
"src": "53355:5:40"
}
]
},
{
"nativeSrc": "53395:166:40",
"nodeType": "YulBlock",
"src": "53395:166:40",
"statements": [
{
"nativeSrc": "53435:15:40",
"nodeType": "YulVariableDeclaration",
"src": "53435:15:40",
"value": {
"kind": "number",
"nativeSrc": "53449:1:40",
"nodeType": "YulLiteral",
"src": "53449:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "53439:6:40",
"nodeType": "YulTypedName",
"src": "53439:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "53475:5:40",
"nodeType": "YulIdentifier",
"src": "53475:5:40"
},
{
"kind": "number",
"nativeSrc": "53482:4:40",
"nodeType": "YulLiteral",
"src": "53482:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "53471:3:40",
"nodeType": "YulIdentifier",
"src": "53471:3:40"
},
"nativeSrc": "53471:16:40",
"nodeType": "YulFunctionCall",
"src": "53471:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "53525:9:40",
"nodeType": "YulIdentifier",
"src": "53525:9:40"
},
{
"name": "offset",
"nativeSrc": "53536:6:40",
"nodeType": "YulIdentifier",
"src": "53536:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "53521:3:40",
"nodeType": "YulIdentifier",
"src": "53521:3:40"
},
"nativeSrc": "53521:22:40",
"nodeType": "YulFunctionCall",
"src": "53521:22:40"
},
{
"name": "end",
"nativeSrc": "53545:3:40",
"nodeType": "YulIdentifier",
"src": "53545:3:40"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "53489:31:40",
"nodeType": "YulIdentifier",
"src": "53489:31:40"
},
"nativeSrc": "53489:60:40",
"nodeType": "YulFunctionCall",
"src": "53489:60:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "53464:6:40",
"nodeType": "YulIdentifier",
"src": "53464:6:40"
},
"nativeSrc": "53464:86:40",
"nodeType": "YulFunctionCall",
"src": "53464:86:40"
},
"nativeSrc": "53464:86:40",
"nodeType": "YulExpressionStatement",
"src": "53464:86:40"
}
]
},
{
"nativeSrc": "53571:168:40",
"nodeType": "YulBlock",
"src": "53571:168:40",
"statements": [
{
"nativeSrc": "53612:16:40",
"nodeType": "YulVariableDeclaration",
"src": "53612:16:40",
"value": {
"kind": "number",
"nativeSrc": "53626:2:40",
"nodeType": "YulLiteral",
"src": "53626:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "53616:6:40",
"nodeType": "YulTypedName",
"src": "53616:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "53653:5:40",
"nodeType": "YulIdentifier",
"src": "53653:5:40"
},
{
"kind": "number",
"nativeSrc": "53660:4:40",
"nodeType": "YulLiteral",
"src": "53660:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "53649:3:40",
"nodeType": "YulIdentifier",
"src": "53649:3:40"
},
"nativeSrc": "53649:16:40",
"nodeType": "YulFunctionCall",
"src": "53649:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "53703:9:40",
"nodeType": "YulIdentifier",
"src": "53703:9:40"
},
{
"name": "offset",
"nativeSrc": "53714:6:40",
"nodeType": "YulIdentifier",
"src": "53714:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "53699:3:40",
"nodeType": "YulIdentifier",
"src": "53699:3:40"
},
"nativeSrc": "53699:22:40",
"nodeType": "YulFunctionCall",
"src": "53699:22:40"
},
{
"name": "end",
"nativeSrc": "53723:3:40",
"nodeType": "YulIdentifier",
"src": "53723:3:40"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "53667:31:40",
"nodeType": "YulIdentifier",
"src": "53667:31:40"
},
"nativeSrc": "53667:60:40",
"nodeType": "YulFunctionCall",
"src": "53667:60:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "53642:6:40",
"nodeType": "YulIdentifier",
"src": "53642:6:40"
},
"nativeSrc": "53642:86:40",
"nodeType": "YulFunctionCall",
"src": "53642:86:40"
},
"nativeSrc": "53642:86:40",
"nodeType": "YulExpressionStatement",
"src": "53642:86:40"
}
]
}
]
},
"name": "abi_decode_t_struct$_MessagingFee_$33_memory_ptr_fromMemory",
"nativeSrc": "53125:621:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "53194:9:40",
"nodeType": "YulTypedName",
"src": "53194:9:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "53205:3:40",
"nodeType": "YulTypedName",
"src": "53205:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "53213:5:40",
"nodeType": "YulTypedName",
"src": "53213:5:40",
"type": ""
}
],
"src": "53125:621:40"
},
{
"body": {
"nativeSrc": "53857:302:40",
"nodeType": "YulBlock",
"src": "53857:302:40",
"statements": [
{
"body": {
"nativeSrc": "53903:83:40",
"nodeType": "YulBlock",
"src": "53903:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "53905:77:40",
"nodeType": "YulIdentifier",
"src": "53905:77:40"
},
"nativeSrc": "53905:79:40",
"nodeType": "YulFunctionCall",
"src": "53905:79:40"
},
"nativeSrc": "53905:79:40",
"nodeType": "YulExpressionStatement",
"src": "53905:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "53878:7:40",
"nodeType": "YulIdentifier",
"src": "53878:7:40"
},
{
"name": "headStart",
"nativeSrc": "53887:9:40",
"nodeType": "YulIdentifier",
"src": "53887:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "53874:3:40",
"nodeType": "YulIdentifier",
"src": "53874:3:40"
},
"nativeSrc": "53874:23:40",
"nodeType": "YulFunctionCall",
"src": "53874:23:40"
},
{
"kind": "number",
"nativeSrc": "53899:2:40",
"nodeType": "YulLiteral",
"src": "53899:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "53870:3:40",
"nodeType": "YulIdentifier",
"src": "53870:3:40"
},
"nativeSrc": "53870:32:40",
"nodeType": "YulFunctionCall",
"src": "53870:32:40"
},
"nativeSrc": "53867:119:40",
"nodeType": "YulIf",
"src": "53867:119:40"
},
{
"nativeSrc": "53996:156:40",
"nodeType": "YulBlock",
"src": "53996:156:40",
"statements": [
{
"nativeSrc": "54011:15:40",
"nodeType": "YulVariableDeclaration",
"src": "54011:15:40",
"value": {
"kind": "number",
"nativeSrc": "54025:1:40",
"nodeType": "YulLiteral",
"src": "54025:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "54015:6:40",
"nodeType": "YulTypedName",
"src": "54015:6:40",
"type": ""
}
]
},
{
"nativeSrc": "54040:102:40",
"nodeType": "YulAssignment",
"src": "54040:102:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "54114:9:40",
"nodeType": "YulIdentifier",
"src": "54114:9:40"
},
{
"name": "offset",
"nativeSrc": "54125:6:40",
"nodeType": "YulIdentifier",
"src": "54125:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "54110:3:40",
"nodeType": "YulIdentifier",
"src": "54110:3:40"
},
"nativeSrc": "54110:22:40",
"nodeType": "YulFunctionCall",
"src": "54110:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "54134:7:40",
"nodeType": "YulIdentifier",
"src": "54134:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_MessagingFee_$33_memory_ptr_fromMemory",
"nativeSrc": "54050:59:40",
"nodeType": "YulIdentifier",
"src": "54050:59:40"
},
"nativeSrc": "54050:92:40",
"nodeType": "YulFunctionCall",
"src": "54050:92:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "54040:6:40",
"nodeType": "YulIdentifier",
"src": "54040:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_MessagingFee_$33_memory_ptr_fromMemory",
"nativeSrc": "53752:407:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "53827:9:40",
"nodeType": "YulTypedName",
"src": "53827:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "53838:7:40",
"nodeType": "YulTypedName",
"src": "53838:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "53850:6:40",
"nodeType": "YulTypedName",
"src": "53850:6:40",
"type": ""
}
],
"src": "53752:407:40"
},
{
"body": {
"nativeSrc": "54218:87:40",
"nodeType": "YulBlock",
"src": "54218:87:40",
"statements": [
{
"nativeSrc": "54228:11:40",
"nodeType": "YulAssignment",
"src": "54228:11:40",
"value": {
"name": "ptr",
"nativeSrc": "54236:3:40",
"nodeType": "YulIdentifier",
"src": "54236:3:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "54228:4:40",
"nodeType": "YulIdentifier",
"src": "54228:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "54256:1:40",
"nodeType": "YulLiteral",
"src": "54256:1:40",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nativeSrc": "54259:3:40",
"nodeType": "YulIdentifier",
"src": "54259:3:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "54249:6:40",
"nodeType": "YulIdentifier",
"src": "54249:6:40"
},
"nativeSrc": "54249:14:40",
"nodeType": "YulFunctionCall",
"src": "54249:14:40"
},
"nativeSrc": "54249:14:40",
"nodeType": "YulExpressionStatement",
"src": "54249:14:40"
},
{
"nativeSrc": "54272:26:40",
"nodeType": "YulAssignment",
"src": "54272:26:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "54290:1:40",
"nodeType": "YulLiteral",
"src": "54290:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "54293:4:40",
"nodeType": "YulLiteral",
"src": "54293:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nativeSrc": "54280:9:40",
"nodeType": "YulIdentifier",
"src": "54280:9:40"
},
"nativeSrc": "54280:18:40",
"nodeType": "YulFunctionCall",
"src": "54280:18:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "54272:4:40",
"nodeType": "YulIdentifier",
"src": "54272:4:40"
}
]
}
]
},
"name": "array_dataslot_t_bytes_storage",
"nativeSrc": "54165:140:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "54205:3:40",
"nodeType": "YulTypedName",
"src": "54205:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "54213:4:40",
"nodeType": "YulTypedName",
"src": "54213:4:40",
"type": ""
}
],
"src": "54165:140:40"
},
{
"body": {
"nativeSrc": "54355:49:40",
"nodeType": "YulBlock",
"src": "54355:49:40",
"statements": [
{
"nativeSrc": "54365:33:40",
"nodeType": "YulAssignment",
"src": "54365:33:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "54383:5:40",
"nodeType": "YulIdentifier",
"src": "54383:5:40"
},
{
"kind": "number",
"nativeSrc": "54390:2:40",
"nodeType": "YulLiteral",
"src": "54390:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "54379:3:40",
"nodeType": "YulIdentifier",
"src": "54379:3:40"
},
"nativeSrc": "54379:14:40",
"nodeType": "YulFunctionCall",
"src": "54379:14:40"
},
{
"kind": "number",
"nativeSrc": "54395:2:40",
"nodeType": "YulLiteral",
"src": "54395:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nativeSrc": "54375:3:40",
"nodeType": "YulIdentifier",
"src": "54375:3:40"
},
"nativeSrc": "54375:23:40",
"nodeType": "YulFunctionCall",
"src": "54375:23:40"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "54365:6:40",
"nodeType": "YulIdentifier",
"src": "54365:6:40"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nativeSrc": "54311:93:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "54338:5:40",
"nodeType": "YulTypedName",
"src": "54338:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "54348:6:40",
"nodeType": "YulTypedName",
"src": "54348:6:40",
"type": ""
}
],
"src": "54311:93:40"
},
{
"body": {
"nativeSrc": "54463:54:40",
"nodeType": "YulBlock",
"src": "54463:54:40",
"statements": [
{
"nativeSrc": "54473:37:40",
"nodeType": "YulAssignment",
"src": "54473:37:40",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "54498:4:40",
"nodeType": "YulIdentifier",
"src": "54498:4:40"
},
{
"name": "value",
"nativeSrc": "54504:5:40",
"nodeType": "YulIdentifier",
"src": "54504:5:40"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "54494:3:40",
"nodeType": "YulIdentifier",
"src": "54494:3:40"
},
"nativeSrc": "54494:16:40",
"nodeType": "YulFunctionCall",
"src": "54494:16:40"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "54473:8:40",
"nodeType": "YulIdentifier",
"src": "54473:8:40"
}
]
}
]
},
"name": "shift_left_dynamic",
"nativeSrc": "54410:107:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "54438:4:40",
"nodeType": "YulTypedName",
"src": "54438:4:40",
"type": ""
},
{
"name": "value",
"nativeSrc": "54444:5:40",
"nodeType": "YulTypedName",
"src": "54444:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "54454:8:40",
"nodeType": "YulTypedName",
"src": "54454:8:40",
"type": ""
}
],
"src": "54410:107:40"
},
{
"body": {
"nativeSrc": "54599:317:40",
"nodeType": "YulBlock",
"src": "54599:317:40",
"statements": [
{
"nativeSrc": "54609:35:40",
"nodeType": "YulVariableDeclaration",
"src": "54609:35:40",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nativeSrc": "54630:10:40",
"nodeType": "YulIdentifier",
"src": "54630:10:40"
},
{
"kind": "number",
"nativeSrc": "54642:1:40",
"nodeType": "YulLiteral",
"src": "54642:1:40",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "54626:3:40",
"nodeType": "YulIdentifier",
"src": "54626:3:40"
},
"nativeSrc": "54626:18:40",
"nodeType": "YulFunctionCall",
"src": "54626:18:40"
},
"variables": [
{
"name": "shiftBits",
"nativeSrc": "54613:9:40",
"nodeType": "YulTypedName",
"src": "54613:9:40",
"type": ""
}
]
},
{
"nativeSrc": "54653:109:40",
"nodeType": "YulVariableDeclaration",
"src": "54653:109:40",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "54684:9:40",
"nodeType": "YulIdentifier",
"src": "54684:9:40"
},
{
"kind": "number",
"nativeSrc": "54695:66:40",
"nodeType": "YulLiteral",
"src": "54695:66:40",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "54665:18:40",
"nodeType": "YulIdentifier",
"src": "54665:18:40"
},
"nativeSrc": "54665:97:40",
"nodeType": "YulFunctionCall",
"src": "54665:97:40"
},
"variables": [
{
"name": "mask",
"nativeSrc": "54657:4:40",
"nodeType": "YulTypedName",
"src": "54657:4:40",
"type": ""
}
]
},
{
"nativeSrc": "54771:51:40",
"nodeType": "YulAssignment",
"src": "54771:51:40",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "54802:9:40",
"nodeType": "YulIdentifier",
"src": "54802:9:40"
},
{
"name": "toInsert",
"nativeSrc": "54813:8:40",
"nodeType": "YulIdentifier",
"src": "54813:8:40"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "54783:18:40",
"nodeType": "YulIdentifier",
"src": "54783:18:40"
},
"nativeSrc": "54783:39:40",
"nodeType": "YulFunctionCall",
"src": "54783:39:40"
},
"variableNames": [
{
"name": "toInsert",
"nativeSrc": "54771:8:40",
"nodeType": "YulIdentifier",
"src": "54771:8:40"
}
]
},
{
"nativeSrc": "54831:30:40",
"nodeType": "YulAssignment",
"src": "54831:30:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "54844:5:40",
"nodeType": "YulIdentifier",
"src": "54844:5:40"
},
{
"arguments": [
{
"name": "mask",
"nativeSrc": "54855:4:40",
"nodeType": "YulIdentifier",
"src": "54855:4:40"
}
],
"functionName": {
"name": "not",
"nativeSrc": "54851:3:40",
"nodeType": "YulIdentifier",
"src": "54851:3:40"
},
"nativeSrc": "54851:9:40",
"nodeType": "YulFunctionCall",
"src": "54851:9:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "54840:3:40",
"nodeType": "YulIdentifier",
"src": "54840:3:40"
},
"nativeSrc": "54840:21:40",
"nodeType": "YulFunctionCall",
"src": "54840:21:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "54831:5:40",
"nodeType": "YulIdentifier",
"src": "54831:5:40"
}
]
},
{
"nativeSrc": "54870:40:40",
"nodeType": "YulAssignment",
"src": "54870:40:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "54883:5:40",
"nodeType": "YulIdentifier",
"src": "54883:5:40"
},
{
"arguments": [
{
"name": "toInsert",
"nativeSrc": "54894:8:40",
"nodeType": "YulIdentifier",
"src": "54894:8:40"
},
{
"name": "mask",
"nativeSrc": "54904:4:40",
"nodeType": "YulIdentifier",
"src": "54904:4:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "54890:3:40",
"nodeType": "YulIdentifier",
"src": "54890:3:40"
},
"nativeSrc": "54890:19:40",
"nodeType": "YulFunctionCall",
"src": "54890:19:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "54880:2:40",
"nodeType": "YulIdentifier",
"src": "54880:2:40"
},
"nativeSrc": "54880:30:40",
"nodeType": "YulFunctionCall",
"src": "54880:30:40"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "54870:6:40",
"nodeType": "YulIdentifier",
"src": "54870:6:40"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nativeSrc": "54523:393:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "54560:5:40",
"nodeType": "YulTypedName",
"src": "54560:5:40",
"type": ""
},
{
"name": "shiftBytes",
"nativeSrc": "54567:10:40",
"nodeType": "YulTypedName",
"src": "54567:10:40",
"type": ""
},
{
"name": "toInsert",
"nativeSrc": "54579:8:40",
"nodeType": "YulTypedName",
"src": "54579:8:40",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "54592:6:40",
"nodeType": "YulTypedName",
"src": "54592:6:40",
"type": ""
}
],
"src": "54523:393:40"
},
{
"body": {
"nativeSrc": "54982:82:40",
"nodeType": "YulBlock",
"src": "54982:82:40",
"statements": [
{
"nativeSrc": "54992:66:40",
"nodeType": "YulAssignment",
"src": "54992:66:40",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "55050:5:40",
"nodeType": "YulIdentifier",
"src": "55050:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "55032:17:40",
"nodeType": "YulIdentifier",
"src": "55032:17:40"
},
"nativeSrc": "55032:24:40",
"nodeType": "YulFunctionCall",
"src": "55032:24:40"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "55023:8:40",
"nodeType": "YulIdentifier",
"src": "55023:8:40"
},
"nativeSrc": "55023:34:40",
"nodeType": "YulFunctionCall",
"src": "55023:34:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "55005:17:40",
"nodeType": "YulIdentifier",
"src": "55005:17:40"
},
"nativeSrc": "55005:53:40",
"nodeType": "YulFunctionCall",
"src": "55005:53:40"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "54992:9:40",
"nodeType": "YulIdentifier",
"src": "54992:9:40"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "54922:142:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "54962:5:40",
"nodeType": "YulTypedName",
"src": "54962:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "54972:9:40",
"nodeType": "YulTypedName",
"src": "54972:9:40",
"type": ""
}
],
"src": "54922:142:40"
},
{
"body": {
"nativeSrc": "55117:28:40",
"nodeType": "YulBlock",
"src": "55117:28:40",
"statements": [
{
"nativeSrc": "55127:12:40",
"nodeType": "YulAssignment",
"src": "55127:12:40",
"value": {
"name": "value",
"nativeSrc": "55134:5:40",
"nodeType": "YulIdentifier",
"src": "55134:5:40"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "55127:3:40",
"nodeType": "YulIdentifier",
"src": "55127:3:40"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nativeSrc": "55070:75:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "55103:5:40",
"nodeType": "YulTypedName",
"src": "55103:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "55113:3:40",
"nodeType": "YulTypedName",
"src": "55113:3:40",
"type": ""
}
],
"src": "55070:75:40"
},
{
"body": {
"nativeSrc": "55227:193:40",
"nodeType": "YulBlock",
"src": "55227:193:40",
"statements": [
{
"nativeSrc": "55237:63:40",
"nodeType": "YulVariableDeclaration",
"src": "55237:63:40",
"value": {
"arguments": [
{
"name": "value_0",
"nativeSrc": "55292:7:40",
"nodeType": "YulIdentifier",
"src": "55292:7:40"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "55261:30:40",
"nodeType": "YulIdentifier",
"src": "55261:30:40"
},
"nativeSrc": "55261:39:40",
"nodeType": "YulFunctionCall",
"src": "55261:39:40"
},
"variables": [
{
"name": "convertedValue_0",
"nativeSrc": "55241:16:40",
"nodeType": "YulTypedName",
"src": "55241:16:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "55316:4:40",
"nodeType": "YulIdentifier",
"src": "55316:4:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "55356:4:40",
"nodeType": "YulIdentifier",
"src": "55356:4:40"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "55350:5:40",
"nodeType": "YulIdentifier",
"src": "55350:5:40"
},
"nativeSrc": "55350:11:40",
"nodeType": "YulFunctionCall",
"src": "55350:11:40"
},
{
"name": "offset",
"nativeSrc": "55363:6:40",
"nodeType": "YulIdentifier",
"src": "55363:6:40"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nativeSrc": "55395:16:40",
"nodeType": "YulIdentifier",
"src": "55395:16:40"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nativeSrc": "55371:23:40",
"nodeType": "YulIdentifier",
"src": "55371:23:40"
},
"nativeSrc": "55371:41:40",
"nodeType": "YulFunctionCall",
"src": "55371:41:40"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nativeSrc": "55322:27:40",
"nodeType": "YulIdentifier",
"src": "55322:27:40"
},
"nativeSrc": "55322:91:40",
"nodeType": "YulFunctionCall",
"src": "55322:91:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "55309:6:40",
"nodeType": "YulIdentifier",
"src": "55309:6:40"
},
"nativeSrc": "55309:105:40",
"nodeType": "YulFunctionCall",
"src": "55309:105:40"
},
"nativeSrc": "55309:105:40",
"nodeType": "YulExpressionStatement",
"src": "55309:105:40"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "55151:269:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "55204:4:40",
"nodeType": "YulTypedName",
"src": "55204:4:40",
"type": ""
},
{
"name": "offset",
"nativeSrc": "55210:6:40",
"nodeType": "YulTypedName",
"src": "55210:6:40",
"type": ""
},
{
"name": "value_0",
"nativeSrc": "55218:7:40",
"nodeType": "YulTypedName",
"src": "55218:7:40",
"type": ""
}
],
"src": "55151:269:40"
},
{
"body": {
"nativeSrc": "55475:24:40",
"nodeType": "YulBlock",
"src": "55475:24:40",
"statements": [
{
"nativeSrc": "55485:8:40",
"nodeType": "YulAssignment",
"src": "55485:8:40",
"value": {
"kind": "number",
"nativeSrc": "55492:1:40",
"nodeType": "YulLiteral",
"src": "55492:1:40",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "55485:3:40",
"nodeType": "YulIdentifier",
"src": "55485:3:40"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "55426:73:40",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nativeSrc": "55471:3:40",
"nodeType": "YulTypedName",
"src": "55471:3:40",
"type": ""
}
],
"src": "55426:73:40"
},
{
"body": {
"nativeSrc": "55558:136:40",
"nodeType": "YulBlock",
"src": "55558:136:40",
"statements": [
{
"nativeSrc": "55568:46:40",
"nodeType": "YulVariableDeclaration",
"src": "55568:46:40",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "55582:30:40",
"nodeType": "YulIdentifier",
"src": "55582:30:40"
},
"nativeSrc": "55582:32:40",
"nodeType": "YulFunctionCall",
"src": "55582:32:40"
},
"variables": [
{
"name": "zero_0",
"nativeSrc": "55572:6:40",
"nodeType": "YulTypedName",
"src": "55572:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "55667:4:40",
"nodeType": "YulIdentifier",
"src": "55667:4:40"
},
{
"name": "offset",
"nativeSrc": "55673:6:40",
"nodeType": "YulIdentifier",
"src": "55673:6:40"
},
{
"name": "zero_0",
"nativeSrc": "55681:6:40",
"nodeType": "YulIdentifier",
"src": "55681:6:40"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "55623:43:40",
"nodeType": "YulIdentifier",
"src": "55623:43:40"
},
"nativeSrc": "55623:65:40",
"nodeType": "YulFunctionCall",
"src": "55623:65:40"
},
"nativeSrc": "55623:65:40",
"nodeType": "YulExpressionStatement",
"src": "55623:65:40"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "55505:189:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "55544:4:40",
"nodeType": "YulTypedName",
"src": "55544:4:40",
"type": ""
},
{
"name": "offset",
"nativeSrc": "55550:6:40",
"nodeType": "YulTypedName",
"src": "55550:6:40",
"type": ""
}
],
"src": "55505:189:40"
},
{
"body": {
"nativeSrc": "55750:136:40",
"nodeType": "YulBlock",
"src": "55750:136:40",
"statements": [
{
"body": {
"nativeSrc": "55817:63:40",
"nodeType": "YulBlock",
"src": "55817:63:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "55861:5:40",
"nodeType": "YulIdentifier",
"src": "55861:5:40"
},
{
"kind": "number",
"nativeSrc": "55868:1:40",
"nodeType": "YulLiteral",
"src": "55868:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "55831:29:40",
"nodeType": "YulIdentifier",
"src": "55831:29:40"
},
"nativeSrc": "55831:39:40",
"nodeType": "YulFunctionCall",
"src": "55831:39:40"
},
"nativeSrc": "55831:39:40",
"nodeType": "YulExpressionStatement",
"src": "55831:39:40"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nativeSrc": "55770:5:40",
"nodeType": "YulIdentifier",
"src": "55770:5:40"
},
{
"name": "end",
"nativeSrc": "55777:3:40",
"nodeType": "YulIdentifier",
"src": "55777:3:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "55767:2:40",
"nodeType": "YulIdentifier",
"src": "55767:2:40"
},
"nativeSrc": "55767:14:40",
"nodeType": "YulFunctionCall",
"src": "55767:14:40"
},
"nativeSrc": "55760:120:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "55782:26:40",
"nodeType": "YulBlock",
"src": "55782:26:40",
"statements": [
{
"nativeSrc": "55784:22:40",
"nodeType": "YulAssignment",
"src": "55784:22:40",
"value": {
"arguments": [
{
"name": "start",
"nativeSrc": "55797:5:40",
"nodeType": "YulIdentifier",
"src": "55797:5:40"
},
{
"kind": "number",
"nativeSrc": "55804:1:40",
"nodeType": "YulLiteral",
"src": "55804:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "55793:3:40",
"nodeType": "YulIdentifier",
"src": "55793:3:40"
},
"nativeSrc": "55793:13:40",
"nodeType": "YulFunctionCall",
"src": "55793:13:40"
},
"variableNames": [
{
"name": "start",
"nativeSrc": "55784:5:40",
"nodeType": "YulIdentifier",
"src": "55784:5:40"
}
]
}
]
},
"pre": {
"nativeSrc": "55764:2:40",
"nodeType": "YulBlock",
"src": "55764:2:40",
"statements": []
},
"src": "55760:120:40"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "55700:186:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "55738:5:40",
"nodeType": "YulTypedName",
"src": "55738:5:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "55745:3:40",
"nodeType": "YulTypedName",
"src": "55745:3:40",
"type": ""
}
],
"src": "55700:186:40"
},
{
"body": {
"nativeSrc": "55970:463:40",
"nodeType": "YulBlock",
"src": "55970:463:40",
"statements": [
{
"body": {
"nativeSrc": "55996:430:40",
"nodeType": "YulBlock",
"src": "55996:430:40",
"statements": [
{
"nativeSrc": "56010:53:40",
"nodeType": "YulVariableDeclaration",
"src": "56010:53:40",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "56057:5:40",
"nodeType": "YulIdentifier",
"src": "56057:5:40"
}
],
"functionName": {
"name": "array_dataslot_t_bytes_storage",
"nativeSrc": "56026:30:40",
"nodeType": "YulIdentifier",
"src": "56026:30:40"
},
"nativeSrc": "56026:37:40",
"nodeType": "YulFunctionCall",
"src": "56026:37:40"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "56014:8:40",
"nodeType": "YulTypedName",
"src": "56014:8:40",
"type": ""
}
]
},
{
"nativeSrc": "56076:63:40",
"nodeType": "YulVariableDeclaration",
"src": "56076:63:40",
"value": {
"arguments": [
{
"name": "dataArea",
"nativeSrc": "56099:8:40",
"nodeType": "YulIdentifier",
"src": "56099:8:40"
},
{
"arguments": [
{
"name": "startIndex",
"nativeSrc": "56127:10:40",
"nodeType": "YulIdentifier",
"src": "56127:10:40"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "56109:17:40",
"nodeType": "YulIdentifier",
"src": "56109:17:40"
},
"nativeSrc": "56109:29:40",
"nodeType": "YulFunctionCall",
"src": "56109:29:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "56095:3:40",
"nodeType": "YulIdentifier",
"src": "56095:3:40"
},
"nativeSrc": "56095:44:40",
"nodeType": "YulFunctionCall",
"src": "56095:44:40"
},
"variables": [
{
"name": "deleteStart",
"nativeSrc": "56080:11:40",
"nodeType": "YulTypedName",
"src": "56080:11:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "56296:27:40",
"nodeType": "YulBlock",
"src": "56296:27:40",
"statements": [
{
"nativeSrc": "56298:23:40",
"nodeType": "YulAssignment",
"src": "56298:23:40",
"value": {
"name": "dataArea",
"nativeSrc": "56313:8:40",
"nodeType": "YulIdentifier",
"src": "56313:8:40"
},
"variableNames": [
{
"name": "deleteStart",
"nativeSrc": "56298:11:40",
"nodeType": "YulIdentifier",
"src": "56298:11:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nativeSrc": "56280:10:40",
"nodeType": "YulIdentifier",
"src": "56280:10:40"
},
{
"kind": "number",
"nativeSrc": "56292:2:40",
"nodeType": "YulLiteral",
"src": "56292:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "56277:2:40",
"nodeType": "YulIdentifier",
"src": "56277:2:40"
},
"nativeSrc": "56277:18:40",
"nodeType": "YulFunctionCall",
"src": "56277:18:40"
},
"nativeSrc": "56274:49:40",
"nodeType": "YulIf",
"src": "56274:49:40"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nativeSrc": "56365:11:40",
"nodeType": "YulIdentifier",
"src": "56365:11:40"
},
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "56382:8:40",
"nodeType": "YulIdentifier",
"src": "56382:8:40"
},
{
"arguments": [
{
"name": "len",
"nativeSrc": "56410:3:40",
"nodeType": "YulIdentifier",
"src": "56410:3:40"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "56392:17:40",
"nodeType": "YulIdentifier",
"src": "56392:17:40"
},
"nativeSrc": "56392:22:40",
"nodeType": "YulFunctionCall",
"src": "56392:22:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "56378:3:40",
"nodeType": "YulIdentifier",
"src": "56378:3:40"
},
"nativeSrc": "56378:37:40",
"nodeType": "YulFunctionCall",
"src": "56378:37:40"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "56336:28:40",
"nodeType": "YulIdentifier",
"src": "56336:28:40"
},
"nativeSrc": "56336:80:40",
"nodeType": "YulFunctionCall",
"src": "56336:80:40"
},
"nativeSrc": "56336:80:40",
"nodeType": "YulExpressionStatement",
"src": "56336:80:40"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nativeSrc": "55987:3:40",
"nodeType": "YulIdentifier",
"src": "55987:3:40"
},
{
"kind": "number",
"nativeSrc": "55992:2:40",
"nodeType": "YulLiteral",
"src": "55992:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "55984:2:40",
"nodeType": "YulIdentifier",
"src": "55984:2:40"
},
"nativeSrc": "55984:11:40",
"nodeType": "YulFunctionCall",
"src": "55984:11:40"
},
"nativeSrc": "55981:445:40",
"nodeType": "YulIf",
"src": "55981:445:40"
}
]
},
"name": "clean_up_bytearray_end_slots_t_bytes_storage",
"nativeSrc": "55892:541:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "55946:5:40",
"nodeType": "YulTypedName",
"src": "55946:5:40",
"type": ""
},
{
"name": "len",
"nativeSrc": "55953:3:40",
"nodeType": "YulTypedName",
"src": "55953:3:40",
"type": ""
},
{
"name": "startIndex",
"nativeSrc": "55958:10:40",
"nodeType": "YulTypedName",
"src": "55958:10:40",
"type": ""
}
],
"src": "55892:541:40"
},
{
"body": {
"nativeSrc": "56502:54:40",
"nodeType": "YulBlock",
"src": "56502:54:40",
"statements": [
{
"nativeSrc": "56512:37:40",
"nodeType": "YulAssignment",
"src": "56512:37:40",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "56537:4:40",
"nodeType": "YulIdentifier",
"src": "56537:4:40"
},
{
"name": "value",
"nativeSrc": "56543:5:40",
"nodeType": "YulIdentifier",
"src": "56543:5:40"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "56533:3:40",
"nodeType": "YulIdentifier",
"src": "56533:3:40"
},
"nativeSrc": "56533:16:40",
"nodeType": "YulFunctionCall",
"src": "56533:16:40"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "56512:8:40",
"nodeType": "YulIdentifier",
"src": "56512:8:40"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "56439:117:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "56477:4:40",
"nodeType": "YulTypedName",
"src": "56477:4:40",
"type": ""
},
{
"name": "value",
"nativeSrc": "56483:5:40",
"nodeType": "YulTypedName",
"src": "56483:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "56493:8:40",
"nodeType": "YulTypedName",
"src": "56493:8:40",
"type": ""
}
],
"src": "56439:117:40"
},
{
"body": {
"nativeSrc": "56613:118:40",
"nodeType": "YulBlock",
"src": "56613:118:40",
"statements": [
{
"nativeSrc": "56623:68:40",
"nodeType": "YulVariableDeclaration",
"src": "56623:68:40",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "56672:1:40",
"nodeType": "YulLiteral",
"src": "56672:1:40",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nativeSrc": "56675:5:40",
"nodeType": "YulIdentifier",
"src": "56675:5:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "56668:3:40",
"nodeType": "YulIdentifier",
"src": "56668:3:40"
},
"nativeSrc": "56668:13:40",
"nodeType": "YulFunctionCall",
"src": "56668:13:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "56687:1:40",
"nodeType": "YulLiteral",
"src": "56687:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nativeSrc": "56683:3:40",
"nodeType": "YulIdentifier",
"src": "56683:3:40"
},
"nativeSrc": "56683:6:40",
"nodeType": "YulFunctionCall",
"src": "56683:6:40"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "56639:28:40",
"nodeType": "YulIdentifier",
"src": "56639:28:40"
},
"nativeSrc": "56639:51:40",
"nodeType": "YulFunctionCall",
"src": "56639:51:40"
}
],
"functionName": {
"name": "not",
"nativeSrc": "56635:3:40",
"nodeType": "YulIdentifier",
"src": "56635:3:40"
},
"nativeSrc": "56635:56:40",
"nodeType": "YulFunctionCall",
"src": "56635:56:40"
},
"variables": [
{
"name": "mask",
"nativeSrc": "56627:4:40",
"nodeType": "YulTypedName",
"src": "56627:4:40",
"type": ""
}
]
},
{
"nativeSrc": "56700:25:40",
"nodeType": "YulAssignment",
"src": "56700:25:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "56714:4:40",
"nodeType": "YulIdentifier",
"src": "56714:4:40"
},
{
"name": "mask",
"nativeSrc": "56720:4:40",
"nodeType": "YulIdentifier",
"src": "56720:4:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "56710:3:40",
"nodeType": "YulIdentifier",
"src": "56710:3:40"
},
"nativeSrc": "56710:15:40",
"nodeType": "YulFunctionCall",
"src": "56710:15:40"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "56700:6:40",
"nodeType": "YulIdentifier",
"src": "56700:6:40"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nativeSrc": "56562:169:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "56590:4:40",
"nodeType": "YulTypedName",
"src": "56590:4:40",
"type": ""
},
{
"name": "bytes",
"nativeSrc": "56596:5:40",
"nodeType": "YulTypedName",
"src": "56596:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "56606:6:40",
"nodeType": "YulTypedName",
"src": "56606:6:40",
"type": ""
}
],
"src": "56562:169:40"
},
{
"body": {
"nativeSrc": "56817:214:40",
"nodeType": "YulBlock",
"src": "56817:214:40",
"statements": [
{
"nativeSrc": "56950:37:40",
"nodeType": "YulAssignment",
"src": "56950:37:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "56977:4:40",
"nodeType": "YulIdentifier",
"src": "56977:4:40"
},
{
"name": "len",
"nativeSrc": "56983:3:40",
"nodeType": "YulIdentifier",
"src": "56983:3:40"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "56958:18:40",
"nodeType": "YulIdentifier",
"src": "56958:18:40"
},
"nativeSrc": "56958:29:40",
"nodeType": "YulFunctionCall",
"src": "56958:29:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "56950:4:40",
"nodeType": "YulIdentifier",
"src": "56950:4:40"
}
]
},
{
"nativeSrc": "56996:29:40",
"nodeType": "YulAssignment",
"src": "56996:29:40",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "57007:4:40",
"nodeType": "YulIdentifier",
"src": "57007:4:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "57017:1:40",
"nodeType": "YulLiteral",
"src": "57017:1:40",
"type": "",
"value": "2"
},
{
"name": "len",
"nativeSrc": "57020:3:40",
"nodeType": "YulIdentifier",
"src": "57020:3:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "57013:3:40",
"nodeType": "YulIdentifier",
"src": "57013:3:40"
},
"nativeSrc": "57013:11:40",
"nodeType": "YulFunctionCall",
"src": "57013:11:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "57004:2:40",
"nodeType": "YulIdentifier",
"src": "57004:2:40"
},
"nativeSrc": "57004:21:40",
"nodeType": "YulFunctionCall",
"src": "57004:21:40"
},
"variableNames": [
{
"name": "used",
"nativeSrc": "56996:4:40",
"nodeType": "YulIdentifier",
"src": "56996:4:40"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "56736:295:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "56798:4:40",
"nodeType": "YulTypedName",
"src": "56798:4:40",
"type": ""
},
{
"name": "len",
"nativeSrc": "56804:3:40",
"nodeType": "YulTypedName",
"src": "56804:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nativeSrc": "56812:4:40",
"nodeType": "YulTypedName",
"src": "56812:4:40",
"type": ""
}
],
"src": "56736:295:40"
},
{
"body": {
"nativeSrc": "57126:1300:40",
"nodeType": "YulBlock",
"src": "57126:1300:40",
"statements": [
{
"nativeSrc": "57137:50:40",
"nodeType": "YulVariableDeclaration",
"src": "57137:50:40",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "57183:3:40",
"nodeType": "YulIdentifier",
"src": "57183:3:40"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nativeSrc": "57151:31:40",
"nodeType": "YulIdentifier",
"src": "57151:31:40"
},
"nativeSrc": "57151:36:40",
"nodeType": "YulFunctionCall",
"src": "57151:36:40"
},
"variables": [
{
"name": "newLen",
"nativeSrc": "57141:6:40",
"nodeType": "YulTypedName",
"src": "57141:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "57272:22:40",
"nodeType": "YulBlock",
"src": "57272:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "57274:16:40",
"nodeType": "YulIdentifier",
"src": "57274:16:40"
},
"nativeSrc": "57274:18:40",
"nodeType": "YulFunctionCall",
"src": "57274:18:40"
},
"nativeSrc": "57274:18:40",
"nodeType": "YulExpressionStatement",
"src": "57274:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "57244:6:40",
"nodeType": "YulIdentifier",
"src": "57244:6:40"
},
{
"kind": "number",
"nativeSrc": "57252:18:40",
"nodeType": "YulLiteral",
"src": "57252:18:40",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "57241:2:40",
"nodeType": "YulIdentifier",
"src": "57241:2:40"
},
"nativeSrc": "57241:30:40",
"nodeType": "YulFunctionCall",
"src": "57241:30:40"
},
"nativeSrc": "57238:56:40",
"nodeType": "YulIf",
"src": "57238:56:40"
},
{
"nativeSrc": "57304:52:40",
"nodeType": "YulVariableDeclaration",
"src": "57304:52:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "57350:4:40",
"nodeType": "YulIdentifier",
"src": "57350:4:40"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "57344:5:40",
"nodeType": "YulIdentifier",
"src": "57344:5:40"
},
"nativeSrc": "57344:11:40",
"nodeType": "YulFunctionCall",
"src": "57344:11:40"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nativeSrc": "57318:25:40",
"nodeType": "YulIdentifier",
"src": "57318:25:40"
},
"nativeSrc": "57318:38:40",
"nodeType": "YulFunctionCall",
"src": "57318:38:40"
},
"variables": [
{
"name": "oldLen",
"nativeSrc": "57308:6:40",
"nodeType": "YulTypedName",
"src": "57308:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "57448:4:40",
"nodeType": "YulIdentifier",
"src": "57448:4:40"
},
{
"name": "oldLen",
"nativeSrc": "57454:6:40",
"nodeType": "YulIdentifier",
"src": "57454:6:40"
},
{
"name": "newLen",
"nativeSrc": "57462:6:40",
"nodeType": "YulIdentifier",
"src": "57462:6:40"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_bytes_storage",
"nativeSrc": "57403:44:40",
"nodeType": "YulIdentifier",
"src": "57403:44:40"
},
"nativeSrc": "57403:66:40",
"nodeType": "YulFunctionCall",
"src": "57403:66:40"
},
"nativeSrc": "57403:66:40",
"nodeType": "YulExpressionStatement",
"src": "57403:66:40"
},
{
"nativeSrc": "57479:18:40",
"nodeType": "YulVariableDeclaration",
"src": "57479:18:40",
"value": {
"kind": "number",
"nativeSrc": "57496:1:40",
"nodeType": "YulLiteral",
"src": "57496:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nativeSrc": "57483:9:40",
"nodeType": "YulTypedName",
"src": "57483:9:40",
"type": ""
}
]
},
{
"nativeSrc": "57507:17:40",
"nodeType": "YulAssignment",
"src": "57507:17:40",
"value": {
"kind": "number",
"nativeSrc": "57520:4:40",
"nodeType": "YulLiteral",
"src": "57520:4:40",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "57507:9:40",
"nodeType": "YulIdentifier",
"src": "57507:9:40"
}
]
},
{
"cases": [
{
"body": {
"nativeSrc": "57571:610:40",
"nodeType": "YulBlock",
"src": "57571:610:40",
"statements": [
{
"nativeSrc": "57585:37:40",
"nodeType": "YulVariableDeclaration",
"src": "57585:37:40",
"value": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "57604:6:40",
"nodeType": "YulIdentifier",
"src": "57604:6:40"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "57616:4:40",
"nodeType": "YulLiteral",
"src": "57616:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nativeSrc": "57612:3:40",
"nodeType": "YulIdentifier",
"src": "57612:3:40"
},
"nativeSrc": "57612:9:40",
"nodeType": "YulFunctionCall",
"src": "57612:9:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "57600:3:40",
"nodeType": "YulIdentifier",
"src": "57600:3:40"
},
"nativeSrc": "57600:22:40",
"nodeType": "YulFunctionCall",
"src": "57600:22:40"
},
"variables": [
{
"name": "loopEnd",
"nativeSrc": "57589:7:40",
"nodeType": "YulTypedName",
"src": "57589:7:40",
"type": ""
}
]
},
{
"nativeSrc": "57636:50:40",
"nodeType": "YulVariableDeclaration",
"src": "57636:50:40",
"value": {
"arguments": [
{
"name": "slot",
"nativeSrc": "57681:4:40",
"nodeType": "YulIdentifier",
"src": "57681:4:40"
}
],
"functionName": {
"name": "array_dataslot_t_bytes_storage",
"nativeSrc": "57650:30:40",
"nodeType": "YulIdentifier",
"src": "57650:30:40"
},
"nativeSrc": "57650:36:40",
"nodeType": "YulFunctionCall",
"src": "57650:36:40"
},
"variables": [
{
"name": "dstPtr",
"nativeSrc": "57640:6:40",
"nodeType": "YulTypedName",
"src": "57640:6:40",
"type": ""
}
]
},
{
"nativeSrc": "57699:10:40",
"nodeType": "YulVariableDeclaration",
"src": "57699:10:40",
"value": {
"kind": "number",
"nativeSrc": "57708:1:40",
"nodeType": "YulLiteral",
"src": "57708:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "57703:1:40",
"nodeType": "YulTypedName",
"src": "57703:1:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "57767:163:40",
"nodeType": "YulBlock",
"src": "57767:163:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "57792:6:40",
"nodeType": "YulIdentifier",
"src": "57792:6:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "57810:3:40",
"nodeType": "YulIdentifier",
"src": "57810:3:40"
},
{
"name": "srcOffset",
"nativeSrc": "57815:9:40",
"nodeType": "YulIdentifier",
"src": "57815:9:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "57806:3:40",
"nodeType": "YulIdentifier",
"src": "57806:3:40"
},
"nativeSrc": "57806:19:40",
"nodeType": "YulFunctionCall",
"src": "57806:19:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "57800:5:40",
"nodeType": "YulIdentifier",
"src": "57800:5:40"
},
"nativeSrc": "57800:26:40",
"nodeType": "YulFunctionCall",
"src": "57800:26:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "57785:6:40",
"nodeType": "YulIdentifier",
"src": "57785:6:40"
},
"nativeSrc": "57785:42:40",
"nodeType": "YulFunctionCall",
"src": "57785:42:40"
},
"nativeSrc": "57785:42:40",
"nodeType": "YulExpressionStatement",
"src": "57785:42:40"
},
{
"nativeSrc": "57844:24:40",
"nodeType": "YulAssignment",
"src": "57844:24:40",
"value": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "57858:6:40",
"nodeType": "YulIdentifier",
"src": "57858:6:40"
},
{
"kind": "number",
"nativeSrc": "57866:1:40",
"nodeType": "YulLiteral",
"src": "57866:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "57854:3:40",
"nodeType": "YulIdentifier",
"src": "57854:3:40"
},
"nativeSrc": "57854:14:40",
"nodeType": "YulFunctionCall",
"src": "57854:14:40"
},
"variableNames": [
{
"name": "dstPtr",
"nativeSrc": "57844:6:40",
"nodeType": "YulIdentifier",
"src": "57844:6:40"
}
]
},
{
"nativeSrc": "57885:31:40",
"nodeType": "YulAssignment",
"src": "57885:31:40",
"value": {
"arguments": [
{
"name": "srcOffset",
"nativeSrc": "57902:9:40",
"nodeType": "YulIdentifier",
"src": "57902:9:40"
},
{
"kind": "number",
"nativeSrc": "57913:2:40",
"nodeType": "YulLiteral",
"src": "57913:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "57898:3:40",
"nodeType": "YulIdentifier",
"src": "57898:3:40"
},
"nativeSrc": "57898:18:40",
"nodeType": "YulFunctionCall",
"src": "57898:18:40"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "57885:9:40",
"nodeType": "YulIdentifier",
"src": "57885:9:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "57733:1:40",
"nodeType": "YulIdentifier",
"src": "57733:1:40"
},
{
"name": "loopEnd",
"nativeSrc": "57736:7:40",
"nodeType": "YulIdentifier",
"src": "57736:7:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "57730:2:40",
"nodeType": "YulIdentifier",
"src": "57730:2:40"
},
"nativeSrc": "57730:14:40",
"nodeType": "YulFunctionCall",
"src": "57730:14:40"
},
"nativeSrc": "57722:208:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "57745:21:40",
"nodeType": "YulBlock",
"src": "57745:21:40",
"statements": [
{
"nativeSrc": "57747:17:40",
"nodeType": "YulAssignment",
"src": "57747:17:40",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "57756:1:40",
"nodeType": "YulIdentifier",
"src": "57756:1:40"
},
{
"kind": "number",
"nativeSrc": "57759:4:40",
"nodeType": "YulLiteral",
"src": "57759:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "57752:3:40",
"nodeType": "YulIdentifier",
"src": "57752:3:40"
},
"nativeSrc": "57752:12:40",
"nodeType": "YulFunctionCall",
"src": "57752:12:40"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "57747:1:40",
"nodeType": "YulIdentifier",
"src": "57747:1:40"
}
]
}
]
},
"pre": {
"nativeSrc": "57726:3:40",
"nodeType": "YulBlock",
"src": "57726:3:40",
"statements": []
},
"src": "57722:208:40"
},
{
"body": {
"nativeSrc": "57966:156:40",
"nodeType": "YulBlock",
"src": "57966:156:40",
"statements": [
{
"nativeSrc": "57984:43:40",
"nodeType": "YulVariableDeclaration",
"src": "57984:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "58011:3:40",
"nodeType": "YulIdentifier",
"src": "58011:3:40"
},
{
"name": "srcOffset",
"nativeSrc": "58016:9:40",
"nodeType": "YulIdentifier",
"src": "58016:9:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "58007:3:40",
"nodeType": "YulIdentifier",
"src": "58007:3:40"
},
"nativeSrc": "58007:19:40",
"nodeType": "YulFunctionCall",
"src": "58007:19:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "58001:5:40",
"nodeType": "YulIdentifier",
"src": "58001:5:40"
},
"nativeSrc": "58001:26:40",
"nodeType": "YulFunctionCall",
"src": "58001:26:40"
},
"variables": [
{
"name": "lastValue",
"nativeSrc": "57988:9:40",
"nodeType": "YulTypedName",
"src": "57988:9:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "58051:6:40",
"nodeType": "YulIdentifier",
"src": "58051:6:40"
},
{
"arguments": [
{
"name": "lastValue",
"nativeSrc": "58078:9:40",
"nodeType": "YulIdentifier",
"src": "58078:9:40"
},
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "58093:6:40",
"nodeType": "YulIdentifier",
"src": "58093:6:40"
},
{
"kind": "number",
"nativeSrc": "58101:4:40",
"nodeType": "YulLiteral",
"src": "58101:4:40",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "58089:3:40",
"nodeType": "YulIdentifier",
"src": "58089:3:40"
},
"nativeSrc": "58089:17:40",
"nodeType": "YulFunctionCall",
"src": "58089:17:40"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "58059:18:40",
"nodeType": "YulIdentifier",
"src": "58059:18:40"
},
"nativeSrc": "58059:48:40",
"nodeType": "YulFunctionCall",
"src": "58059:48:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "58044:6:40",
"nodeType": "YulIdentifier",
"src": "58044:6:40"
},
"nativeSrc": "58044:64:40",
"nodeType": "YulFunctionCall",
"src": "58044:64:40"
},
"nativeSrc": "58044:64:40",
"nodeType": "YulExpressionStatement",
"src": "58044:64:40"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nativeSrc": "57949:7:40",
"nodeType": "YulIdentifier",
"src": "57949:7:40"
},
{
"name": "newLen",
"nativeSrc": "57958:6:40",
"nodeType": "YulIdentifier",
"src": "57958:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "57946:2:40",
"nodeType": "YulIdentifier",
"src": "57946:2:40"
},
"nativeSrc": "57946:19:40",
"nodeType": "YulFunctionCall",
"src": "57946:19:40"
},
"nativeSrc": "57943:179:40",
"nodeType": "YulIf",
"src": "57943:179:40"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "58142:4:40",
"nodeType": "YulIdentifier",
"src": "58142:4:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "58156:6:40",
"nodeType": "YulIdentifier",
"src": "58156:6:40"
},
{
"kind": "number",
"nativeSrc": "58164:1:40",
"nodeType": "YulLiteral",
"src": "58164:1:40",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "58152:3:40",
"nodeType": "YulIdentifier",
"src": "58152:3:40"
},
"nativeSrc": "58152:14:40",
"nodeType": "YulFunctionCall",
"src": "58152:14:40"
},
{
"kind": "number",
"nativeSrc": "58168:1:40",
"nodeType": "YulLiteral",
"src": "58168:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "58148:3:40",
"nodeType": "YulIdentifier",
"src": "58148:3:40"
},
"nativeSrc": "58148:22:40",
"nodeType": "YulFunctionCall",
"src": "58148:22:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "58135:6:40",
"nodeType": "YulIdentifier",
"src": "58135:6:40"
},
"nativeSrc": "58135:36:40",
"nodeType": "YulFunctionCall",
"src": "58135:36:40"
},
"nativeSrc": "58135:36:40",
"nodeType": "YulExpressionStatement",
"src": "58135:36:40"
}
]
},
"nativeSrc": "57564:617:40",
"nodeType": "YulCase",
"src": "57564:617:40",
"value": {
"kind": "number",
"nativeSrc": "57569:1:40",
"nodeType": "YulLiteral",
"src": "57569:1:40",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "58198:222:40",
"nodeType": "YulBlock",
"src": "58198:222:40",
"statements": [
{
"nativeSrc": "58212:14:40",
"nodeType": "YulVariableDeclaration",
"src": "58212:14:40",
"value": {
"kind": "number",
"nativeSrc": "58225:1:40",
"nodeType": "YulLiteral",
"src": "58225:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nativeSrc": "58216:5:40",
"nodeType": "YulTypedName",
"src": "58216:5:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "58249:67:40",
"nodeType": "YulBlock",
"src": "58249:67:40",
"statements": [
{
"nativeSrc": "58267:35:40",
"nodeType": "YulAssignment",
"src": "58267:35:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "58286:3:40",
"nodeType": "YulIdentifier",
"src": "58286:3:40"
},
{
"name": "srcOffset",
"nativeSrc": "58291:9:40",
"nodeType": "YulIdentifier",
"src": "58291:9:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "58282:3:40",
"nodeType": "YulIdentifier",
"src": "58282:3:40"
},
"nativeSrc": "58282:19:40",
"nodeType": "YulFunctionCall",
"src": "58282:19:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "58276:5:40",
"nodeType": "YulIdentifier",
"src": "58276:5:40"
},
"nativeSrc": "58276:26:40",
"nodeType": "YulFunctionCall",
"src": "58276:26:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "58267:5:40",
"nodeType": "YulIdentifier",
"src": "58267:5:40"
}
]
}
]
},
"condition": {
"name": "newLen",
"nativeSrc": "58242:6:40",
"nodeType": "YulIdentifier",
"src": "58242:6:40"
},
"nativeSrc": "58239:77:40",
"nodeType": "YulIf",
"src": "58239:77:40"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "58336:4:40",
"nodeType": "YulIdentifier",
"src": "58336:4:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "58395:5:40",
"nodeType": "YulIdentifier",
"src": "58395:5:40"
},
{
"name": "newLen",
"nativeSrc": "58402:6:40",
"nodeType": "YulIdentifier",
"src": "58402:6:40"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "58342:52:40",
"nodeType": "YulIdentifier",
"src": "58342:52:40"
},
"nativeSrc": "58342:67:40",
"nodeType": "YulFunctionCall",
"src": "58342:67:40"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "58329:6:40",
"nodeType": "YulIdentifier",
"src": "58329:6:40"
},
"nativeSrc": "58329:81:40",
"nodeType": "YulFunctionCall",
"src": "58329:81:40"
},
"nativeSrc": "58329:81:40",
"nodeType": "YulExpressionStatement",
"src": "58329:81:40"
}
]
},
"nativeSrc": "58190:230:40",
"nodeType": "YulCase",
"src": "58190:230:40",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "57544:6:40",
"nodeType": "YulIdentifier",
"src": "57544:6:40"
},
{
"kind": "number",
"nativeSrc": "57552:2:40",
"nodeType": "YulLiteral",
"src": "57552:2:40",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "57541:2:40",
"nodeType": "YulIdentifier",
"src": "57541:2:40"
},
"nativeSrc": "57541:14:40",
"nodeType": "YulFunctionCall",
"src": "57541:14:40"
},
"nativeSrc": "57534:886:40",
"nodeType": "YulSwitch",
"src": "57534:886:40"
}
]
},
"name": "copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage",
"nativeSrc": "57036:1390:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "57115:4:40",
"nodeType": "YulTypedName",
"src": "57115:4:40",
"type": ""
},
{
"name": "src",
"nativeSrc": "57121:3:40",
"nodeType": "YulTypedName",
"src": "57121:3:40",
"type": ""
}
],
"src": "57036:1390:40"
},
{
"body": {
"nativeSrc": "58543:40:40",
"nodeType": "YulBlock",
"src": "58543:40:40",
"statements": [
{
"nativeSrc": "58554:22:40",
"nodeType": "YulAssignment",
"src": "58554:22:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "58570:5:40",
"nodeType": "YulIdentifier",
"src": "58570:5:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "58564:5:40",
"nodeType": "YulIdentifier",
"src": "58564:5:40"
},
"nativeSrc": "58564:12:40",
"nodeType": "YulFunctionCall",
"src": "58564:12:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "58554:6:40",
"nodeType": "YulIdentifier",
"src": "58554:6:40"
}
]
}
]
},
"name": "array_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "58432:151:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "58526:5:40",
"nodeType": "YulTypedName",
"src": "58526:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "58536:6:40",
"nodeType": "YulTypedName",
"src": "58536:6:40",
"type": ""
}
],
"src": "58432:151:40"
},
{
"body": {
"nativeSrc": "58737:73:40",
"nodeType": "YulBlock",
"src": "58737:73:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "58754:3:40",
"nodeType": "YulIdentifier",
"src": "58754:3:40"
},
{
"name": "length",
"nativeSrc": "58759:6:40",
"nodeType": "YulIdentifier",
"src": "58759:6:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "58747:6:40",
"nodeType": "YulIdentifier",
"src": "58747:6:40"
},
"nativeSrc": "58747:19:40",
"nodeType": "YulFunctionCall",
"src": "58747:19:40"
},
"nativeSrc": "58747:19:40",
"nodeType": "YulExpressionStatement",
"src": "58747:19:40"
},
{
"nativeSrc": "58775:29:40",
"nodeType": "YulAssignment",
"src": "58775:29:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "58794:3:40",
"nodeType": "YulIdentifier",
"src": "58794:3:40"
},
{
"kind": "number",
"nativeSrc": "58799:4:40",
"nodeType": "YulLiteral",
"src": "58799:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "58790:3:40",
"nodeType": "YulIdentifier",
"src": "58790:3:40"
},
"nativeSrc": "58790:14:40",
"nodeType": "YulFunctionCall",
"src": "58790:14:40"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "58775:11:40",
"nodeType": "YulIdentifier",
"src": "58775:11:40"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack",
"nativeSrc": "58589:221:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "58709:3:40",
"nodeType": "YulTypedName",
"src": "58709:3:40",
"type": ""
},
{
"name": "length",
"nativeSrc": "58714:6:40",
"nodeType": "YulTypedName",
"src": "58714:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "58725:11:40",
"nodeType": "YulTypedName",
"src": "58725:11:40",
"type": ""
}
],
"src": "58589:221:40"
},
{
"body": {
"nativeSrc": "58925:60:40",
"nodeType": "YulBlock",
"src": "58925:60:40",
"statements": [
{
"nativeSrc": "58935:11:40",
"nodeType": "YulAssignment",
"src": "58935:11:40",
"value": {
"name": "ptr",
"nativeSrc": "58943:3:40",
"nodeType": "YulIdentifier",
"src": "58943:3:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "58935:4:40",
"nodeType": "YulIdentifier",
"src": "58935:4:40"
}
]
},
{
"nativeSrc": "58956:22:40",
"nodeType": "YulAssignment",
"src": "58956:22:40",
"value": {
"arguments": [
{
"name": "ptr",
"nativeSrc": "58968:3:40",
"nodeType": "YulIdentifier",
"src": "58968:3:40"
},
{
"kind": "number",
"nativeSrc": "58973:4:40",
"nodeType": "YulLiteral",
"src": "58973:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "58964:3:40",
"nodeType": "YulIdentifier",
"src": "58964:3:40"
},
"nativeSrc": "58964:14:40",
"nodeType": "YulFunctionCall",
"src": "58964:14:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "58956:4:40",
"nodeType": "YulIdentifier",
"src": "58956:4:40"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "58816:169:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "58912:3:40",
"nodeType": "YulTypedName",
"src": "58912:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "58920:4:40",
"nodeType": "YulTypedName",
"src": "58920:4:40",
"type": ""
}
],
"src": "58816:169:40"
},
{
"body": {
"nativeSrc": "59044:52:40",
"nodeType": "YulBlock",
"src": "59044:52:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "59061:3:40",
"nodeType": "YulIdentifier",
"src": "59061:3:40"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "59083:5:40",
"nodeType": "YulIdentifier",
"src": "59083:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint16",
"nativeSrc": "59066:16:40",
"nodeType": "YulIdentifier",
"src": "59066:16:40"
},
"nativeSrc": "59066:23:40",
"nodeType": "YulFunctionCall",
"src": "59066:23:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "59054:6:40",
"nodeType": "YulIdentifier",
"src": "59054:6:40"
},
"nativeSrc": "59054:36:40",
"nodeType": "YulFunctionCall",
"src": "59054:36:40"
},
"nativeSrc": "59054:36:40",
"nodeType": "YulExpressionStatement",
"src": "59054:36:40"
}
]
},
"name": "abi_encode_t_uint16_to_t_uint16",
"nativeSrc": "58991:105:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "59032:5:40",
"nodeType": "YulTypedName",
"src": "59032:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "59039:3:40",
"nodeType": "YulTypedName",
"src": "59039:3:40",
"type": ""
}
],
"src": "58991:105:40"
},
{
"body": {
"nativeSrc": "59304:655:40",
"nodeType": "YulBlock",
"src": "59304:655:40",
"statements": [
{
"nativeSrc": "59314:26:40",
"nodeType": "YulVariableDeclaration",
"src": "59314:26:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "59330:3:40",
"nodeType": "YulIdentifier",
"src": "59330:3:40"
},
{
"kind": "number",
"nativeSrc": "59335:4:40",
"nodeType": "YulLiteral",
"src": "59335:4:40",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nativeSrc": "59326:3:40",
"nodeType": "YulIdentifier",
"src": "59326:3:40"
},
"nativeSrc": "59326:14:40",
"nodeType": "YulFunctionCall",
"src": "59326:14:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "59318:4:40",
"nodeType": "YulTypedName",
"src": "59318:4:40",
"type": ""
}
]
},
{
"nativeSrc": "59350:161:40",
"nodeType": "YulBlock",
"src": "59350:161:40",
"statements": [
{
"nativeSrc": "59384:43:40",
"nodeType": "YulVariableDeclaration",
"src": "59384:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "59414:5:40",
"nodeType": "YulIdentifier",
"src": "59414:5:40"
},
{
"kind": "number",
"nativeSrc": "59421:4:40",
"nodeType": "YulLiteral",
"src": "59421:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "59410:3:40",
"nodeType": "YulIdentifier",
"src": "59410:3:40"
},
"nativeSrc": "59410:16:40",
"nodeType": "YulFunctionCall",
"src": "59410:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "59404:5:40",
"nodeType": "YulIdentifier",
"src": "59404:5:40"
},
"nativeSrc": "59404:23:40",
"nodeType": "YulFunctionCall",
"src": "59404:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "59388:12:40",
"nodeType": "YulTypedName",
"src": "59388:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "59472:12:40",
"nodeType": "YulIdentifier",
"src": "59472:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "59490:3:40",
"nodeType": "YulIdentifier",
"src": "59490:3:40"
},
{
"kind": "number",
"nativeSrc": "59495:4:40",
"nodeType": "YulLiteral",
"src": "59495:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "59486:3:40",
"nodeType": "YulIdentifier",
"src": "59486:3:40"
},
"nativeSrc": "59486:14:40",
"nodeType": "YulFunctionCall",
"src": "59486:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint32_to_t_uint32",
"nativeSrc": "59440:31:40",
"nodeType": "YulIdentifier",
"src": "59440:31:40"
},
"nativeSrc": "59440:61:40",
"nodeType": "YulFunctionCall",
"src": "59440:61:40"
},
"nativeSrc": "59440:61:40",
"nodeType": "YulExpressionStatement",
"src": "59440:61:40"
}
]
},
{
"nativeSrc": "59521:165:40",
"nodeType": "YulBlock",
"src": "59521:165:40",
"statements": [
{
"nativeSrc": "59559:43:40",
"nodeType": "YulVariableDeclaration",
"src": "59559:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "59589:5:40",
"nodeType": "YulIdentifier",
"src": "59589:5:40"
},
{
"kind": "number",
"nativeSrc": "59596:4:40",
"nodeType": "YulLiteral",
"src": "59596:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "59585:3:40",
"nodeType": "YulIdentifier",
"src": "59585:3:40"
},
"nativeSrc": "59585:16:40",
"nodeType": "YulFunctionCall",
"src": "59585:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "59579:5:40",
"nodeType": "YulIdentifier",
"src": "59579:5:40"
},
"nativeSrc": "59579:23:40",
"nodeType": "YulFunctionCall",
"src": "59579:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "59563:12:40",
"nodeType": "YulTypedName",
"src": "59563:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "59647:12:40",
"nodeType": "YulIdentifier",
"src": "59647:12:40"
},
{
"arguments": [
{
"name": "pos",
"nativeSrc": "59665:3:40",
"nodeType": "YulIdentifier",
"src": "59665:3:40"
},
{
"kind": "number",
"nativeSrc": "59670:4:40",
"nodeType": "YulLiteral",
"src": "59670:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "59661:3:40",
"nodeType": "YulIdentifier",
"src": "59661:3:40"
},
"nativeSrc": "59661:14:40",
"nodeType": "YulFunctionCall",
"src": "59661:14:40"
}
],
"functionName": {
"name": "abi_encode_t_uint16_to_t_uint16",
"nativeSrc": "59615:31:40",
"nodeType": "YulIdentifier",
"src": "59615:31:40"
},
"nativeSrc": "59615:61:40",
"nodeType": "YulFunctionCall",
"src": "59615:61:40"
},
"nativeSrc": "59615:61:40",
"nodeType": "YulExpressionStatement",
"src": "59615:61:40"
}
]
},
{
"nativeSrc": "59696:236:40",
"nodeType": "YulBlock",
"src": "59696:236:40",
"statements": [
{
"nativeSrc": "59734:43:40",
"nodeType": "YulVariableDeclaration",
"src": "59734:43:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "59764:5:40",
"nodeType": "YulIdentifier",
"src": "59764:5:40"
},
{
"kind": "number",
"nativeSrc": "59771:4:40",
"nodeType": "YulLiteral",
"src": "59771:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "59760:3:40",
"nodeType": "YulIdentifier",
"src": "59760:3:40"
},
"nativeSrc": "59760:16:40",
"nodeType": "YulFunctionCall",
"src": "59760:16:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "59754:5:40",
"nodeType": "YulIdentifier",
"src": "59754:5:40"
},
"nativeSrc": "59754:23:40",
"nodeType": "YulFunctionCall",
"src": "59754:23:40"
},
"variables": [
{
"name": "memberValue0",
"nativeSrc": "59738:12:40",
"nodeType": "YulTypedName",
"src": "59738:12:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nativeSrc": "59802:3:40",
"nodeType": "YulIdentifier",
"src": "59802:3:40"
},
{
"kind": "number",
"nativeSrc": "59807:4:40",
"nodeType": "YulLiteral",
"src": "59807:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "59798:3:40",
"nodeType": "YulIdentifier",
"src": "59798:3:40"
},
"nativeSrc": "59798:14:40",
"nodeType": "YulFunctionCall",
"src": "59798:14:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "59818:4:40",
"nodeType": "YulIdentifier",
"src": "59818:4:40"
},
{
"name": "pos",
"nativeSrc": "59824:3:40",
"nodeType": "YulIdentifier",
"src": "59824:3:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "59814:3:40",
"nodeType": "YulIdentifier",
"src": "59814:3:40"
},
"nativeSrc": "59814:14:40",
"nodeType": "YulFunctionCall",
"src": "59814:14:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "59791:6:40",
"nodeType": "YulIdentifier",
"src": "59791:6:40"
},
"nativeSrc": "59791:38:40",
"nodeType": "YulFunctionCall",
"src": "59791:38:40"
},
"nativeSrc": "59791:38:40",
"nodeType": "YulExpressionStatement",
"src": "59791:38:40"
},
{
"nativeSrc": "59842:79:40",
"nodeType": "YulAssignment",
"src": "59842:79:40",
"value": {
"arguments": [
{
"name": "memberValue0",
"nativeSrc": "59902:12:40",
"nodeType": "YulIdentifier",
"src": "59902:12:40"
},
{
"name": "tail",
"nativeSrc": "59916:4:40",
"nodeType": "YulIdentifier",
"src": "59916:4:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nativeSrc": "59850:51:40",
"nodeType": "YulIdentifier",
"src": "59850:51:40"
},
"nativeSrc": "59850:71:40",
"nodeType": "YulFunctionCall",
"src": "59850:71:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "59842:4:40",
"nodeType": "YulIdentifier",
"src": "59842:4:40"
}
]
}
]
},
{
"nativeSrc": "59942:11:40",
"nodeType": "YulAssignment",
"src": "59942:11:40",
"value": {
"name": "tail",
"nativeSrc": "59949:4:40",
"nodeType": "YulIdentifier",
"src": "59949:4:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "59942:3:40",
"nodeType": "YulIdentifier",
"src": "59942:3:40"
}
]
}
]
},
"name": "abi_encode_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr",
"nativeSrc": "59166:793:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "59283:5:40",
"nodeType": "YulTypedName",
"src": "59283:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "59290:3:40",
"nodeType": "YulTypedName",
"src": "59290:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "59299:3:40",
"nodeType": "YulTypedName",
"src": "59299:3:40",
"type": ""
}
],
"src": "59166:793:40"
},
{
"body": {
"nativeSrc": "60119:150:40",
"nodeType": "YulBlock",
"src": "60119:150:40",
"statements": [
{
"nativeSrc": "60129:134:40",
"nodeType": "YulAssignment",
"src": "60129:134:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "60251:6:40",
"nodeType": "YulIdentifier",
"src": "60251:6:40"
},
{
"name": "pos",
"nativeSrc": "60259:3:40",
"nodeType": "YulIdentifier",
"src": "60259:3:40"
}
],
"functionName": {
"name": "abi_encode_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr",
"nativeSrc": "60143:107:40",
"nodeType": "YulIdentifier",
"src": "60143:107:40"
},
"nativeSrc": "60143:120:40",
"nodeType": "YulFunctionCall",
"src": "60143:120:40"
},
"variableNames": [
{
"name": "updatedPos",
"nativeSrc": "60129:10:40",
"nodeType": "YulIdentifier",
"src": "60129:10:40"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr",
"nativeSrc": "59965:304:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nativeSrc": "60092:6:40",
"nodeType": "YulTypedName",
"src": "60092:6:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "60100:3:40",
"nodeType": "YulTypedName",
"src": "60100:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nativeSrc": "60108:10:40",
"nodeType": "YulTypedName",
"src": "60108:10:40",
"type": ""
}
],
"src": "59965:304:40"
},
{
"body": {
"nativeSrc": "60387:38:40",
"nodeType": "YulBlock",
"src": "60387:38:40",
"statements": [
{
"nativeSrc": "60397:22:40",
"nodeType": "YulAssignment",
"src": "60397:22:40",
"value": {
"arguments": [
{
"name": "ptr",
"nativeSrc": "60409:3:40",
"nodeType": "YulIdentifier",
"src": "60409:3:40"
},
{
"kind": "number",
"nativeSrc": "60414:4:40",
"nodeType": "YulLiteral",
"src": "60414:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "60405:3:40",
"nodeType": "YulIdentifier",
"src": "60405:3:40"
},
"nativeSrc": "60405:14:40",
"nodeType": "YulFunctionCall",
"src": "60405:14:40"
},
"variableNames": [
{
"name": "next",
"nativeSrc": "60397:4:40",
"nodeType": "YulIdentifier",
"src": "60397:4:40"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "60275:150:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "60374:3:40",
"nodeType": "YulTypedName",
"src": "60374:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nativeSrc": "60382:4:40",
"nodeType": "YulTypedName",
"src": "60382:4:40",
"type": ""
}
],
"src": "60275:150:40"
},
{
"body": {
"nativeSrc": "60697:1009:40",
"nodeType": "YulBlock",
"src": "60697:1009:40",
"statements": [
{
"nativeSrc": "60707:105:40",
"nodeType": "YulVariableDeclaration",
"src": "60707:105:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "60806:5:40",
"nodeType": "YulIdentifier",
"src": "60806:5:40"
}
],
"functionName": {
"name": "array_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "60721:84:40",
"nodeType": "YulIdentifier",
"src": "60721:84:40"
},
"nativeSrc": "60721:91:40",
"nodeType": "YulFunctionCall",
"src": "60721:91:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "60711:6:40",
"nodeType": "YulTypedName",
"src": "60711:6:40",
"type": ""
}
]
},
{
"nativeSrc": "60821:130:40",
"nodeType": "YulAssignment",
"src": "60821:130:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "60939:3:40",
"nodeType": "YulIdentifier",
"src": "60939:3:40"
},
{
"name": "length",
"nativeSrc": "60944:6:40",
"nodeType": "YulIdentifier",
"src": "60944:6:40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack",
"nativeSrc": "60828:110:40",
"nodeType": "YulIdentifier",
"src": "60828:110:40"
},
"nativeSrc": "60828:123:40",
"nodeType": "YulFunctionCall",
"src": "60828:123:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "60821:3:40",
"nodeType": "YulIdentifier",
"src": "60821:3:40"
}
]
},
{
"nativeSrc": "60960:20:40",
"nodeType": "YulVariableDeclaration",
"src": "60960:20:40",
"value": {
"name": "pos",
"nativeSrc": "60977:3:40",
"nodeType": "YulIdentifier",
"src": "60977:3:40"
},
"variables": [
{
"name": "headStart",
"nativeSrc": "60964:9:40",
"nodeType": "YulTypedName",
"src": "60964:9:40",
"type": ""
}
]
},
{
"nativeSrc": "60989:39:40",
"nodeType": "YulVariableDeclaration",
"src": "60989:39:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "61005:3:40",
"nodeType": "YulIdentifier",
"src": "61005:3:40"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "61014:6:40",
"nodeType": "YulIdentifier",
"src": "61014:6:40"
},
{
"kind": "number",
"nativeSrc": "61022:4:40",
"nodeType": "YulLiteral",
"src": "61022:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "61010:3:40",
"nodeType": "YulIdentifier",
"src": "61010:3:40"
},
"nativeSrc": "61010:17:40",
"nodeType": "YulFunctionCall",
"src": "61010:17:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "61001:3:40",
"nodeType": "YulIdentifier",
"src": "61001:3:40"
},
"nativeSrc": "61001:27:40",
"nodeType": "YulFunctionCall",
"src": "61001:27:40"
},
"variables": [
{
"name": "tail",
"nativeSrc": "60993:4:40",
"nodeType": "YulTypedName",
"src": "60993:4:40",
"type": ""
}
]
},
{
"nativeSrc": "61037:108:40",
"nodeType": "YulVariableDeclaration",
"src": "61037:108:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "61139:5:40",
"nodeType": "YulIdentifier",
"src": "61139:5:40"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "61052:86:40",
"nodeType": "YulIdentifier",
"src": "61052:86:40"
},
"nativeSrc": "61052:93:40",
"nodeType": "YulFunctionCall",
"src": "61052:93:40"
},
"variables": [
{
"name": "baseRef",
"nativeSrc": "61041:7:40",
"nodeType": "YulTypedName",
"src": "61041:7:40",
"type": ""
}
]
},
{
"nativeSrc": "61154:21:40",
"nodeType": "YulVariableDeclaration",
"src": "61154:21:40",
"value": {
"name": "baseRef",
"nativeSrc": "61168:7:40",
"nodeType": "YulIdentifier",
"src": "61168:7:40"
},
"variables": [
{
"name": "srcPtr",
"nativeSrc": "61158:6:40",
"nodeType": "YulTypedName",
"src": "61158:6:40",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "61244:417:40",
"nodeType": "YulBlock",
"src": "61244:417:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "61265:3:40",
"nodeType": "YulIdentifier",
"src": "61265:3:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "61274:4:40",
"nodeType": "YulIdentifier",
"src": "61274:4:40"
},
{
"name": "headStart",
"nativeSrc": "61280:9:40",
"nodeType": "YulIdentifier",
"src": "61280:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "61270:3:40",
"nodeType": "YulIdentifier",
"src": "61270:3:40"
},
"nativeSrc": "61270:20:40",
"nodeType": "YulFunctionCall",
"src": "61270:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "61258:6:40",
"nodeType": "YulIdentifier",
"src": "61258:6:40"
},
"nativeSrc": "61258:33:40",
"nodeType": "YulFunctionCall",
"src": "61258:33:40"
},
"nativeSrc": "61258:33:40",
"nodeType": "YulExpressionStatement",
"src": "61258:33:40"
},
{
"nativeSrc": "61304:34:40",
"nodeType": "YulVariableDeclaration",
"src": "61304:34:40",
"value": {
"arguments": [
{
"name": "srcPtr",
"nativeSrc": "61331:6:40",
"nodeType": "YulIdentifier",
"src": "61331:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "61325:5:40",
"nodeType": "YulIdentifier",
"src": "61325:5:40"
},
"nativeSrc": "61325:13:40",
"nodeType": "YulFunctionCall",
"src": "61325:13:40"
},
"variables": [
{
"name": "elementValue0",
"nativeSrc": "61308:13:40",
"nodeType": "YulTypedName",
"src": "61308:13:40",
"type": ""
}
]
},
{
"nativeSrc": "61351:146:40",
"nodeType": "YulAssignment",
"src": "61351:146:40",
"value": {
"arguments": [
{
"name": "elementValue0",
"nativeSrc": "61477:13:40",
"nodeType": "YulIdentifier",
"src": "61477:13:40"
},
{
"name": "tail",
"nativeSrc": "61492:4:40",
"nodeType": "YulIdentifier",
"src": "61492:4:40"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr",
"nativeSrc": "61359:117:40",
"nodeType": "YulIdentifier",
"src": "61359:117:40"
},
"nativeSrc": "61359:138:40",
"nodeType": "YulFunctionCall",
"src": "61359:138:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "61351:4:40",
"nodeType": "YulIdentifier",
"src": "61351:4:40"
}
]
},
{
"nativeSrc": "61510:107:40",
"nodeType": "YulAssignment",
"src": "61510:107:40",
"value": {
"arguments": [
{
"name": "srcPtr",
"nativeSrc": "61610:6:40",
"nodeType": "YulIdentifier",
"src": "61610:6:40"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr",
"nativeSrc": "61520:89:40",
"nodeType": "YulIdentifier",
"src": "61520:89:40"
},
"nativeSrc": "61520:97:40",
"nodeType": "YulFunctionCall",
"src": "61520:97:40"
},
"variableNames": [
{
"name": "srcPtr",
"nativeSrc": "61510:6:40",
"nodeType": "YulIdentifier",
"src": "61510:6:40"
}
]
},
{
"nativeSrc": "61630:21:40",
"nodeType": "YulAssignment",
"src": "61630:21:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "61641:3:40",
"nodeType": "YulIdentifier",
"src": "61641:3:40"
},
{
"kind": "number",
"nativeSrc": "61646:4:40",
"nodeType": "YulLiteral",
"src": "61646:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "61637:3:40",
"nodeType": "YulIdentifier",
"src": "61637:3:40"
},
"nativeSrc": "61637:14:40",
"nodeType": "YulFunctionCall",
"src": "61637:14:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "61630:3:40",
"nodeType": "YulIdentifier",
"src": "61630:3:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "61206:1:40",
"nodeType": "YulIdentifier",
"src": "61206:1:40"
},
{
"name": "length",
"nativeSrc": "61209:6:40",
"nodeType": "YulIdentifier",
"src": "61209:6:40"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "61203:2:40",
"nodeType": "YulIdentifier",
"src": "61203:2:40"
},
"nativeSrc": "61203:13:40",
"nodeType": "YulFunctionCall",
"src": "61203:13:40"
},
"nativeSrc": "61184:477:40",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "61217:18:40",
"nodeType": "YulBlock",
"src": "61217:18:40",
"statements": [
{
"nativeSrc": "61219:14:40",
"nodeType": "YulAssignment",
"src": "61219:14:40",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "61228:1:40",
"nodeType": "YulIdentifier",
"src": "61228:1:40"
},
{
"kind": "number",
"nativeSrc": "61231:1:40",
"nodeType": "YulLiteral",
"src": "61231:1:40",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "61224:3:40",
"nodeType": "YulIdentifier",
"src": "61224:3:40"
},
"nativeSrc": "61224:9:40",
"nodeType": "YulFunctionCall",
"src": "61224:9:40"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "61219:1:40",
"nodeType": "YulIdentifier",
"src": "61219:1:40"
}
]
}
]
},
"pre": {
"nativeSrc": "61188:14:40",
"nodeType": "YulBlock",
"src": "61188:14:40",
"statements": [
{
"nativeSrc": "61190:10:40",
"nodeType": "YulVariableDeclaration",
"src": "61190:10:40",
"value": {
"kind": "number",
"nativeSrc": "61199:1:40",
"nodeType": "YulLiteral",
"src": "61199:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "61194:1:40",
"nodeType": "YulTypedName",
"src": "61194:1:40",
"type": ""
}
]
}
]
},
"src": "61184:477:40"
},
{
"nativeSrc": "61670:11:40",
"nodeType": "YulAssignment",
"src": "61670:11:40",
"value": {
"name": "tail",
"nativeSrc": "61677:4:40",
"nodeType": "YulIdentifier",
"src": "61677:4:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "61670:3:40",
"nodeType": "YulIdentifier",
"src": "61670:3:40"
}
]
},
{
"nativeSrc": "61690:10:40",
"nodeType": "YulAssignment",
"src": "61690:10:40",
"value": {
"name": "pos",
"nativeSrc": "61697:3:40",
"nodeType": "YulIdentifier",
"src": "61697:3:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "61690:3:40",
"nodeType": "YulIdentifier",
"src": "61690:3:40"
}
]
}
]
},
"name": "abi_encode_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack",
"nativeSrc": "60499:1207:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "60676:5:40",
"nodeType": "YulTypedName",
"src": "60676:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "60683:3:40",
"nodeType": "YulTypedName",
"src": "60683:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "60692:3:40",
"nodeType": "YulTypedName",
"src": "60692:3:40",
"type": ""
}
],
"src": "60499:1207:40"
},
{
"body": {
"nativeSrc": "61934:299:40",
"nodeType": "YulBlock",
"src": "61934:299:40",
"statements": [
{
"nativeSrc": "61944:26:40",
"nodeType": "YulAssignment",
"src": "61944:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "61956:9:40",
"nodeType": "YulIdentifier",
"src": "61956:9:40"
},
{
"kind": "number",
"nativeSrc": "61967:2:40",
"nodeType": "YulLiteral",
"src": "61967:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "61952:3:40",
"nodeType": "YulIdentifier",
"src": "61952:3:40"
},
"nativeSrc": "61952:18:40",
"nodeType": "YulFunctionCall",
"src": "61952:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "61944:4:40",
"nodeType": "YulIdentifier",
"src": "61944:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "61991:9:40",
"nodeType": "YulIdentifier",
"src": "61991:9:40"
},
{
"kind": "number",
"nativeSrc": "62002:1:40",
"nodeType": "YulLiteral",
"src": "62002:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "61987:3:40",
"nodeType": "YulIdentifier",
"src": "61987:3:40"
},
"nativeSrc": "61987:17:40",
"nodeType": "YulFunctionCall",
"src": "61987:17:40"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "62010:4:40",
"nodeType": "YulIdentifier",
"src": "62010:4:40"
},
{
"name": "headStart",
"nativeSrc": "62016:9:40",
"nodeType": "YulIdentifier",
"src": "62016:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "62006:3:40",
"nodeType": "YulIdentifier",
"src": "62006:3:40"
},
"nativeSrc": "62006:20:40",
"nodeType": "YulFunctionCall",
"src": "62006:20:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "61980:6:40",
"nodeType": "YulIdentifier",
"src": "61980:6:40"
},
"nativeSrc": "61980:47:40",
"nodeType": "YulFunctionCall",
"src": "61980:47:40"
},
"nativeSrc": "61980:47:40",
"nodeType": "YulExpressionStatement",
"src": "61980:47:40"
},
{
"nativeSrc": "62036:190:40",
"nodeType": "YulAssignment",
"src": "62036:190:40",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "62212:6:40",
"nodeType": "YulIdentifier",
"src": "62212:6:40"
},
{
"name": "tail",
"nativeSrc": "62221:4:40",
"nodeType": "YulIdentifier",
"src": "62221:4:40"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack",
"nativeSrc": "62044:167:40",
"nodeType": "YulIdentifier",
"src": "62044:167:40"
},
"nativeSrc": "62044:182:40",
"nodeType": "YulFunctionCall",
"src": "62044:182:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "62036:4:40",
"nodeType": "YulIdentifier",
"src": "62036:4:40"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
"nativeSrc": "61712:521:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "61906:9:40",
"nodeType": "YulTypedName",
"src": "61906:9:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "61918:6:40",
"nodeType": "YulTypedName",
"src": "61918:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "61929:4:40",
"nodeType": "YulTypedName",
"src": "61929:4:40",
"type": ""
}
],
"src": "61712:521:40"
},
{
"body": {
"nativeSrc": "62349:505:40",
"nodeType": "YulBlock",
"src": "62349:505:40",
"statements": [
{
"body": {
"nativeSrc": "62393:83:40",
"nodeType": "YulBlock",
"src": "62393:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nativeSrc": "62395:77:40",
"nodeType": "YulIdentifier",
"src": "62395:77:40"
},
"nativeSrc": "62395:79:40",
"nodeType": "YulFunctionCall",
"src": "62395:79:40"
},
"nativeSrc": "62395:79:40",
"nodeType": "YulExpressionStatement",
"src": "62395:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nativeSrc": "62370:3:40",
"nodeType": "YulIdentifier",
"src": "62370:3:40"
},
{
"name": "headStart",
"nativeSrc": "62375:9:40",
"nodeType": "YulIdentifier",
"src": "62375:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "62366:3:40",
"nodeType": "YulIdentifier",
"src": "62366:3:40"
},
"nativeSrc": "62366:19:40",
"nodeType": "YulFunctionCall",
"src": "62366:19:40"
},
{
"kind": "number",
"nativeSrc": "62387:4:40",
"nodeType": "YulLiteral",
"src": "62387:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "62362:3:40",
"nodeType": "YulIdentifier",
"src": "62362:3:40"
},
"nativeSrc": "62362:30:40",
"nodeType": "YulFunctionCall",
"src": "62362:30:40"
},
"nativeSrc": "62359:117:40",
"nodeType": "YulIf",
"src": "62359:117:40"
},
{
"nativeSrc": "62485:30:40",
"nodeType": "YulAssignment",
"src": "62485:30:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "62510:4:40",
"nodeType": "YulLiteral",
"src": "62510:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "62494:15:40",
"nodeType": "YulIdentifier",
"src": "62494:15:40"
},
"nativeSrc": "62494:21:40",
"nodeType": "YulFunctionCall",
"src": "62494:21:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "62485:5:40",
"nodeType": "YulIdentifier",
"src": "62485:5:40"
}
]
},
{
"nativeSrc": "62525:155:40",
"nodeType": "YulBlock",
"src": "62525:155:40",
"statements": [
{
"nativeSrc": "62565:15:40",
"nodeType": "YulVariableDeclaration",
"src": "62565:15:40",
"value": {
"kind": "number",
"nativeSrc": "62579:1:40",
"nodeType": "YulLiteral",
"src": "62579:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "62569:6:40",
"nodeType": "YulTypedName",
"src": "62569:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "62605:5:40",
"nodeType": "YulIdentifier",
"src": "62605:5:40"
},
{
"kind": "number",
"nativeSrc": "62612:4:40",
"nodeType": "YulLiteral",
"src": "62612:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "62601:3:40",
"nodeType": "YulIdentifier",
"src": "62601:3:40"
},
"nativeSrc": "62601:16:40",
"nodeType": "YulFunctionCall",
"src": "62601:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "62644:9:40",
"nodeType": "YulIdentifier",
"src": "62644:9:40"
},
{
"name": "offset",
"nativeSrc": "62655:6:40",
"nodeType": "YulIdentifier",
"src": "62655:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "62640:3:40",
"nodeType": "YulIdentifier",
"src": "62640:3:40"
},
"nativeSrc": "62640:22:40",
"nodeType": "YulFunctionCall",
"src": "62640:22:40"
},
{
"name": "end",
"nativeSrc": "62664:3:40",
"nodeType": "YulIdentifier",
"src": "62664:3:40"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "62619:20:40",
"nodeType": "YulIdentifier",
"src": "62619:20:40"
},
"nativeSrc": "62619:49:40",
"nodeType": "YulFunctionCall",
"src": "62619:49:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "62594:6:40",
"nodeType": "YulIdentifier",
"src": "62594:6:40"
},
"nativeSrc": "62594:75:40",
"nodeType": "YulFunctionCall",
"src": "62594:75:40"
},
"nativeSrc": "62594:75:40",
"nodeType": "YulExpressionStatement",
"src": "62594:75:40"
}
]
},
{
"nativeSrc": "62690:157:40",
"nodeType": "YulBlock",
"src": "62690:157:40",
"statements": [
{
"nativeSrc": "62731:16:40",
"nodeType": "YulVariableDeclaration",
"src": "62731:16:40",
"value": {
"kind": "number",
"nativeSrc": "62745:2:40",
"nodeType": "YulLiteral",
"src": "62745:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "62735:6:40",
"nodeType": "YulTypedName",
"src": "62735:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "62772:5:40",
"nodeType": "YulIdentifier",
"src": "62772:5:40"
},
{
"kind": "number",
"nativeSrc": "62779:4:40",
"nodeType": "YulLiteral",
"src": "62779:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "62768:3:40",
"nodeType": "YulIdentifier",
"src": "62768:3:40"
},
"nativeSrc": "62768:16:40",
"nodeType": "YulFunctionCall",
"src": "62768:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "62811:9:40",
"nodeType": "YulIdentifier",
"src": "62811:9:40"
},
{
"name": "offset",
"nativeSrc": "62822:6:40",
"nodeType": "YulIdentifier",
"src": "62822:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "62807:3:40",
"nodeType": "YulIdentifier",
"src": "62807:3:40"
},
"nativeSrc": "62807:22:40",
"nodeType": "YulFunctionCall",
"src": "62807:22:40"
},
{
"name": "end",
"nativeSrc": "62831:3:40",
"nodeType": "YulIdentifier",
"src": "62831:3:40"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "62786:20:40",
"nodeType": "YulIdentifier",
"src": "62786:20:40"
},
"nativeSrc": "62786:49:40",
"nodeType": "YulFunctionCall",
"src": "62786:49:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "62761:6:40",
"nodeType": "YulIdentifier",
"src": "62761:6:40"
},
"nativeSrc": "62761:75:40",
"nodeType": "YulFunctionCall",
"src": "62761:75:40"
},
"nativeSrc": "62761:75:40",
"nodeType": "YulExpressionStatement",
"src": "62761:75:40"
}
]
}
]
},
"name": "abi_decode_t_struct$_MessagingFee_$33_memory_ptr",
"nativeSrc": "62266:588:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "62324:9:40",
"nodeType": "YulTypedName",
"src": "62324:9:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "62335:3:40",
"nodeType": "YulTypedName",
"src": "62335:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "62343:5:40",
"nodeType": "YulTypedName",
"src": "62343:5:40",
"type": ""
}
],
"src": "62266:588:40"
},
{
"body": {
"nativeSrc": "62954:291:40",
"nodeType": "YulBlock",
"src": "62954:291:40",
"statements": [
{
"body": {
"nativeSrc": "63000:83:40",
"nodeType": "YulBlock",
"src": "63000:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "63002:77:40",
"nodeType": "YulIdentifier",
"src": "63002:77:40"
},
"nativeSrc": "63002:79:40",
"nodeType": "YulFunctionCall",
"src": "63002:79:40"
},
"nativeSrc": "63002:79:40",
"nodeType": "YulExpressionStatement",
"src": "63002:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "62975:7:40",
"nodeType": "YulIdentifier",
"src": "62975:7:40"
},
{
"name": "headStart",
"nativeSrc": "62984:9:40",
"nodeType": "YulIdentifier",
"src": "62984:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "62971:3:40",
"nodeType": "YulIdentifier",
"src": "62971:3:40"
},
"nativeSrc": "62971:23:40",
"nodeType": "YulFunctionCall",
"src": "62971:23:40"
},
{
"kind": "number",
"nativeSrc": "62996:2:40",
"nodeType": "YulLiteral",
"src": "62996:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "62967:3:40",
"nodeType": "YulIdentifier",
"src": "62967:3:40"
},
"nativeSrc": "62967:32:40",
"nodeType": "YulFunctionCall",
"src": "62967:32:40"
},
"nativeSrc": "62964:119:40",
"nodeType": "YulIf",
"src": "62964:119:40"
},
{
"nativeSrc": "63093:145:40",
"nodeType": "YulBlock",
"src": "63093:145:40",
"statements": [
{
"nativeSrc": "63108:15:40",
"nodeType": "YulVariableDeclaration",
"src": "63108:15:40",
"value": {
"kind": "number",
"nativeSrc": "63122:1:40",
"nodeType": "YulLiteral",
"src": "63122:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "63112:6:40",
"nodeType": "YulTypedName",
"src": "63112:6:40",
"type": ""
}
]
},
{
"nativeSrc": "63137:91:40",
"nodeType": "YulAssignment",
"src": "63137:91:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "63200:9:40",
"nodeType": "YulIdentifier",
"src": "63200:9:40"
},
{
"name": "offset",
"nativeSrc": "63211:6:40",
"nodeType": "YulIdentifier",
"src": "63211:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "63196:3:40",
"nodeType": "YulIdentifier",
"src": "63196:3:40"
},
"nativeSrc": "63196:22:40",
"nodeType": "YulFunctionCall",
"src": "63196:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "63220:7:40",
"nodeType": "YulIdentifier",
"src": "63220:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_MessagingFee_$33_memory_ptr",
"nativeSrc": "63147:48:40",
"nodeType": "YulIdentifier",
"src": "63147:48:40"
},
"nativeSrc": "63147:81:40",
"nodeType": "YulFunctionCall",
"src": "63147:81:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "63137:6:40",
"nodeType": "YulIdentifier",
"src": "63137:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_MessagingFee_$33_memory_ptr",
"nativeSrc": "62860:385:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "62924:9:40",
"nodeType": "YulTypedName",
"src": "62924:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "62935:7:40",
"nodeType": "YulTypedName",
"src": "62935:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "62947:6:40",
"nodeType": "YulTypedName",
"src": "62947:6:40",
"type": ""
}
],
"src": "62860:385:40"
},
{
"body": {
"nativeSrc": "63403:286:40",
"nodeType": "YulBlock",
"src": "63403:286:40",
"statements": [
{
"nativeSrc": "63413:26:40",
"nodeType": "YulAssignment",
"src": "63413:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "63425:9:40",
"nodeType": "YulIdentifier",
"src": "63425:9:40"
},
{
"kind": "number",
"nativeSrc": "63436:2:40",
"nodeType": "YulLiteral",
"src": "63436:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "63421:3:40",
"nodeType": "YulIdentifier",
"src": "63421:3:40"
},
"nativeSrc": "63421:18:40",
"nodeType": "YulFunctionCall",
"src": "63421:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "63413:4:40",
"nodeType": "YulIdentifier",
"src": "63413:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "63491:6:40",
"nodeType": "YulIdentifier",
"src": "63491:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "63504:9:40",
"nodeType": "YulIdentifier",
"src": "63504:9:40"
},
{
"kind": "number",
"nativeSrc": "63515:1:40",
"nodeType": "YulLiteral",
"src": "63515:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "63500:3:40",
"nodeType": "YulIdentifier",
"src": "63500:3:40"
},
"nativeSrc": "63500:17:40",
"nodeType": "YulFunctionCall",
"src": "63500:17:40"
}
],
"functionName": {
"name": "abi_encode_t_uint32_to_t_uint32_fromStack",
"nativeSrc": "63449:41:40",
"nodeType": "YulIdentifier",
"src": "63449:41:40"
},
"nativeSrc": "63449:69:40",
"nodeType": "YulFunctionCall",
"src": "63449:69:40"
},
"nativeSrc": "63449:69:40",
"nodeType": "YulExpressionStatement",
"src": "63449:69:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "63572:6:40",
"nodeType": "YulIdentifier",
"src": "63572:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "63585:9:40",
"nodeType": "YulIdentifier",
"src": "63585:9:40"
},
{
"kind": "number",
"nativeSrc": "63596:2:40",
"nodeType": "YulLiteral",
"src": "63596:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "63581:3:40",
"nodeType": "YulIdentifier",
"src": "63581:3:40"
},
"nativeSrc": "63581:18:40",
"nodeType": "YulFunctionCall",
"src": "63581:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "63528:43:40",
"nodeType": "YulIdentifier",
"src": "63528:43:40"
},
"nativeSrc": "63528:72:40",
"nodeType": "YulFunctionCall",
"src": "63528:72:40"
},
"nativeSrc": "63528:72:40",
"nodeType": "YulExpressionStatement",
"src": "63528:72:40"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "63654:6:40",
"nodeType": "YulIdentifier",
"src": "63654:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "63667:9:40",
"nodeType": "YulIdentifier",
"src": "63667:9:40"
},
{
"kind": "number",
"nativeSrc": "63678:2:40",
"nodeType": "YulLiteral",
"src": "63678:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "63663:3:40",
"nodeType": "YulIdentifier",
"src": "63663:3:40"
},
"nativeSrc": "63663:18:40",
"nodeType": "YulFunctionCall",
"src": "63663:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "63610:43:40",
"nodeType": "YulIdentifier",
"src": "63610:43:40"
},
"nativeSrc": "63610:72:40",
"nodeType": "YulFunctionCall",
"src": "63610:72:40"
},
"nativeSrc": "63610:72:40",
"nodeType": "YulExpressionStatement",
"src": "63610:72:40"
}
]
},
"name": "abi_encode_tuple_t_uint32_t_uint256_t_uint256__to_t_uint32_t_uint256_t_uint256__fromStack_reversed",
"nativeSrc": "63251:438:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "63359:9:40",
"nodeType": "YulTypedName",
"src": "63359:9:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "63371:6:40",
"nodeType": "YulTypedName",
"src": "63371:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "63379:6:40",
"nodeType": "YulTypedName",
"src": "63379:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "63387:6:40",
"nodeType": "YulTypedName",
"src": "63387:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "63398:4:40",
"nodeType": "YulTypedName",
"src": "63398:4:40",
"type": ""
}
],
"src": "63251:438:40"
},
{
"body": {
"nativeSrc": "63723:152:40",
"nodeType": "YulBlock",
"src": "63723:152:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "63740:1:40",
"nodeType": "YulLiteral",
"src": "63740:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "63743:77:40",
"nodeType": "YulLiteral",
"src": "63743:77:40",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "63733:6:40",
"nodeType": "YulIdentifier",
"src": "63733:6:40"
},
"nativeSrc": "63733:88:40",
"nodeType": "YulFunctionCall",
"src": "63733:88:40"
},
"nativeSrc": "63733:88:40",
"nodeType": "YulExpressionStatement",
"src": "63733:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "63837:1:40",
"nodeType": "YulLiteral",
"src": "63837:1:40",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "63840:4:40",
"nodeType": "YulLiteral",
"src": "63840:4:40",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "63830:6:40",
"nodeType": "YulIdentifier",
"src": "63830:6:40"
},
"nativeSrc": "63830:15:40",
"nodeType": "YulFunctionCall",
"src": "63830:15:40"
},
"nativeSrc": "63830:15:40",
"nodeType": "YulExpressionStatement",
"src": "63830:15:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "63861:1:40",
"nodeType": "YulLiteral",
"src": "63861:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "63864:4:40",
"nodeType": "YulLiteral",
"src": "63864:4:40",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "63854:6:40",
"nodeType": "YulIdentifier",
"src": "63854:6:40"
},
"nativeSrc": "63854:15:40",
"nodeType": "YulFunctionCall",
"src": "63854:15:40"
},
"nativeSrc": "63854:15:40",
"nodeType": "YulExpressionStatement",
"src": "63854:15:40"
}
]
},
"name": "panic_error_0x12",
"nativeSrc": "63695:180:40",
"nodeType": "YulFunctionDefinition",
"src": "63695:180:40"
},
{
"body": {
"nativeSrc": "63909:152:40",
"nodeType": "YulBlock",
"src": "63909:152:40",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "63926:1:40",
"nodeType": "YulLiteral",
"src": "63926:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "63929:77:40",
"nodeType": "YulLiteral",
"src": "63929:77:40",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "63919:6:40",
"nodeType": "YulIdentifier",
"src": "63919:6:40"
},
"nativeSrc": "63919:88:40",
"nodeType": "YulFunctionCall",
"src": "63919:88:40"
},
"nativeSrc": "63919:88:40",
"nodeType": "YulExpressionStatement",
"src": "63919:88:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "64023:1:40",
"nodeType": "YulLiteral",
"src": "64023:1:40",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "64026:4:40",
"nodeType": "YulLiteral",
"src": "64026:4:40",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "64016:6:40",
"nodeType": "YulIdentifier",
"src": "64016:6:40"
},
"nativeSrc": "64016:15:40",
"nodeType": "YulFunctionCall",
"src": "64016:15:40"
},
"nativeSrc": "64016:15:40",
"nodeType": "YulExpressionStatement",
"src": "64016:15:40"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "64047:1:40",
"nodeType": "YulLiteral",
"src": "64047:1:40",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "64050:4:40",
"nodeType": "YulLiteral",
"src": "64050:4:40",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "64040:6:40",
"nodeType": "YulIdentifier",
"src": "64040:6:40"
},
"nativeSrc": "64040:15:40",
"nodeType": "YulFunctionCall",
"src": "64040:15:40"
},
"nativeSrc": "64040:15:40",
"nodeType": "YulExpressionStatement",
"src": "64040:15:40"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "63881:180:40",
"nodeType": "YulFunctionDefinition",
"src": "63881:180:40"
},
{
"body": {
"nativeSrc": "64109:143:40",
"nodeType": "YulBlock",
"src": "64109:143:40",
"statements": [
{
"nativeSrc": "64119:25:40",
"nodeType": "YulAssignment",
"src": "64119:25:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "64142:1:40",
"nodeType": "YulIdentifier",
"src": "64142:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "64124:17:40",
"nodeType": "YulIdentifier",
"src": "64124:17:40"
},
"nativeSrc": "64124:20:40",
"nodeType": "YulFunctionCall",
"src": "64124:20:40"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "64119:1:40",
"nodeType": "YulIdentifier",
"src": "64119:1:40"
}
]
},
{
"nativeSrc": "64153:25:40",
"nodeType": "YulAssignment",
"src": "64153:25:40",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "64176:1:40",
"nodeType": "YulIdentifier",
"src": "64176:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "64158:17:40",
"nodeType": "YulIdentifier",
"src": "64158:17:40"
},
"nativeSrc": "64158:20:40",
"nodeType": "YulFunctionCall",
"src": "64158:20:40"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "64153:1:40",
"nodeType": "YulIdentifier",
"src": "64153:1:40"
}
]
},
{
"body": {
"nativeSrc": "64200:22:40",
"nodeType": "YulBlock",
"src": "64200:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nativeSrc": "64202:16:40",
"nodeType": "YulIdentifier",
"src": "64202:16:40"
},
"nativeSrc": "64202:18:40",
"nodeType": "YulFunctionCall",
"src": "64202:18:40"
},
"nativeSrc": "64202:18:40",
"nodeType": "YulExpressionStatement",
"src": "64202:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nativeSrc": "64197:1:40",
"nodeType": "YulIdentifier",
"src": "64197:1:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "64190:6:40",
"nodeType": "YulIdentifier",
"src": "64190:6:40"
},
"nativeSrc": "64190:9:40",
"nodeType": "YulFunctionCall",
"src": "64190:9:40"
},
"nativeSrc": "64187:35:40",
"nodeType": "YulIf",
"src": "64187:35:40"
},
{
"nativeSrc": "64232:14:40",
"nodeType": "YulAssignment",
"src": "64232:14:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "64241:1:40",
"nodeType": "YulIdentifier",
"src": "64241:1:40"
},
{
"name": "y",
"nativeSrc": "64244:1:40",
"nodeType": "YulIdentifier",
"src": "64244:1:40"
}
],
"functionName": {
"name": "div",
"nativeSrc": "64237:3:40",
"nodeType": "YulIdentifier",
"src": "64237:3:40"
},
"nativeSrc": "64237:9:40",
"nodeType": "YulFunctionCall",
"src": "64237:9:40"
},
"variableNames": [
{
"name": "r",
"nativeSrc": "64232:1:40",
"nodeType": "YulIdentifier",
"src": "64232:1:40"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nativeSrc": "64067:185:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "64098:1:40",
"nodeType": "YulTypedName",
"src": "64098:1:40",
"type": ""
},
{
"name": "y",
"nativeSrc": "64101:1:40",
"nodeType": "YulTypedName",
"src": "64101:1:40",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nativeSrc": "64107:1:40",
"nodeType": "YulTypedName",
"src": "64107:1:40",
"type": ""
}
],
"src": "64067:185:40"
},
{
"body": {
"nativeSrc": "64306:362:40",
"nodeType": "YulBlock",
"src": "64306:362:40",
"statements": [
{
"nativeSrc": "64316:25:40",
"nodeType": "YulAssignment",
"src": "64316:25:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "64339:1:40",
"nodeType": "YulIdentifier",
"src": "64339:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "64321:17:40",
"nodeType": "YulIdentifier",
"src": "64321:17:40"
},
"nativeSrc": "64321:20:40",
"nodeType": "YulFunctionCall",
"src": "64321:20:40"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "64316:1:40",
"nodeType": "YulIdentifier",
"src": "64316:1:40"
}
]
},
{
"nativeSrc": "64350:25:40",
"nodeType": "YulAssignment",
"src": "64350:25:40",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "64373:1:40",
"nodeType": "YulIdentifier",
"src": "64373:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "64355:17:40",
"nodeType": "YulIdentifier",
"src": "64355:17:40"
},
"nativeSrc": "64355:20:40",
"nodeType": "YulFunctionCall",
"src": "64355:20:40"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "64350:1:40",
"nodeType": "YulIdentifier",
"src": "64350:1:40"
}
]
},
{
"nativeSrc": "64384:28:40",
"nodeType": "YulVariableDeclaration",
"src": "64384:28:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "64407:1:40",
"nodeType": "YulIdentifier",
"src": "64407:1:40"
},
{
"name": "y",
"nativeSrc": "64410:1:40",
"nodeType": "YulIdentifier",
"src": "64410:1:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "64403:3:40",
"nodeType": "YulIdentifier",
"src": "64403:3:40"
},
"nativeSrc": "64403:9:40",
"nodeType": "YulFunctionCall",
"src": "64403:9:40"
},
"variables": [
{
"name": "product_raw",
"nativeSrc": "64388:11:40",
"nodeType": "YulTypedName",
"src": "64388:11:40",
"type": ""
}
]
},
{
"nativeSrc": "64421:41:40",
"nodeType": "YulAssignment",
"src": "64421:41:40",
"value": {
"arguments": [
{
"name": "product_raw",
"nativeSrc": "64450:11:40",
"nodeType": "YulIdentifier",
"src": "64450:11:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "64432:17:40",
"nodeType": "YulIdentifier",
"src": "64432:17:40"
},
"nativeSrc": "64432:30:40",
"nodeType": "YulFunctionCall",
"src": "64432:30:40"
},
"variableNames": [
{
"name": "product",
"nativeSrc": "64421:7:40",
"nodeType": "YulIdentifier",
"src": "64421:7:40"
}
]
},
{
"body": {
"nativeSrc": "64639:22:40",
"nodeType": "YulBlock",
"src": "64639:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "64641:16:40",
"nodeType": "YulIdentifier",
"src": "64641:16:40"
},
"nativeSrc": "64641:18:40",
"nodeType": "YulFunctionCall",
"src": "64641:18:40"
},
"nativeSrc": "64641:18:40",
"nodeType": "YulExpressionStatement",
"src": "64641:18:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nativeSrc": "64572:1:40",
"nodeType": "YulIdentifier",
"src": "64572:1:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "64565:6:40",
"nodeType": "YulIdentifier",
"src": "64565:6:40"
},
"nativeSrc": "64565:9:40",
"nodeType": "YulFunctionCall",
"src": "64565:9:40"
},
{
"arguments": [
{
"name": "y",
"nativeSrc": "64595:1:40",
"nodeType": "YulIdentifier",
"src": "64595:1:40"
},
{
"arguments": [
{
"name": "product",
"nativeSrc": "64602:7:40",
"nodeType": "YulIdentifier",
"src": "64602:7:40"
},
{
"name": "x",
"nativeSrc": "64611:1:40",
"nodeType": "YulIdentifier",
"src": "64611:1:40"
}
],
"functionName": {
"name": "div",
"nativeSrc": "64598:3:40",
"nodeType": "YulIdentifier",
"src": "64598:3:40"
},
"nativeSrc": "64598:15:40",
"nodeType": "YulFunctionCall",
"src": "64598:15:40"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "64592:2:40",
"nodeType": "YulIdentifier",
"src": "64592:2:40"
},
"nativeSrc": "64592:22:40",
"nodeType": "YulFunctionCall",
"src": "64592:22:40"
}
],
"functionName": {
"name": "or",
"nativeSrc": "64545:2:40",
"nodeType": "YulIdentifier",
"src": "64545:2:40"
},
"nativeSrc": "64545:83:40",
"nodeType": "YulFunctionCall",
"src": "64545:83:40"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "64525:6:40",
"nodeType": "YulIdentifier",
"src": "64525:6:40"
},
"nativeSrc": "64525:113:40",
"nodeType": "YulFunctionCall",
"src": "64525:113:40"
},
"nativeSrc": "64522:139:40",
"nodeType": "YulIf",
"src": "64522:139:40"
}
]
},
"name": "checked_mul_t_uint256",
"nativeSrc": "64258:410:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "64289:1:40",
"nodeType": "YulTypedName",
"src": "64289:1:40",
"type": ""
},
{
"name": "y",
"nativeSrc": "64292:1:40",
"nodeType": "YulTypedName",
"src": "64292:1:40",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nativeSrc": "64298:7:40",
"nodeType": "YulTypedName",
"src": "64298:7:40",
"type": ""
}
],
"src": "64258:410:40"
},
{
"body": {
"nativeSrc": "64739:31:40",
"nodeType": "YulBlock",
"src": "64739:31:40",
"statements": [
{
"nativeSrc": "64750:13:40",
"nodeType": "YulAssignment",
"src": "64750:13:40",
"value": {
"name": "len",
"nativeSrc": "64760:3:40",
"nodeType": "YulIdentifier",
"src": "64760:3:40"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "64750:6:40",
"nodeType": "YulIdentifier",
"src": "64750:6:40"
}
]
}
]
},
"name": "array_length_t_bytes_calldata_ptr",
"nativeSrc": "64674:96:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "64717:5:40",
"nodeType": "YulTypedName",
"src": "64717:5:40",
"type": ""
},
{
"name": "len",
"nativeSrc": "64724:3:40",
"nodeType": "YulTypedName",
"src": "64724:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "64732:6:40",
"nodeType": "YulTypedName",
"src": "64732:6:40",
"type": ""
}
],
"src": "64674:96:40"
},
{
"body": {
"nativeSrc": "64834:28:40",
"nodeType": "YulBlock",
"src": "64834:28:40",
"statements": [
{
"nativeSrc": "64844:11:40",
"nodeType": "YulAssignment",
"src": "64844:11:40",
"value": {
"name": "ptr",
"nativeSrc": "64852:3:40",
"nodeType": "YulIdentifier",
"src": "64852:3:40"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "64844:4:40",
"nodeType": "YulIdentifier",
"src": "64844:4:40"
}
]
}
]
},
"name": "array_dataslot_t_bytes_calldata_ptr",
"nativeSrc": "64776:86:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "64821:3:40",
"nodeType": "YulTypedName",
"src": "64821:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "64829:4:40",
"nodeType": "YulTypedName",
"src": "64829:4:40",
"type": ""
}
],
"src": "64776:86:40"
},
{
"body": {
"nativeSrc": "64965:455:40",
"nodeType": "YulBlock",
"src": "64965:455:40",
"statements": [
{
"nativeSrc": "64976:59:40",
"nodeType": "YulVariableDeclaration",
"src": "64976:59:40",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "65024:5:40",
"nodeType": "YulIdentifier",
"src": "65024:5:40"
},
{
"name": "len",
"nativeSrc": "65031:3:40",
"nodeType": "YulIdentifier",
"src": "65031:3:40"
}
],
"functionName": {
"name": "array_length_t_bytes_calldata_ptr",
"nativeSrc": "64990:33:40",
"nodeType": "YulIdentifier",
"src": "64990:33:40"
},
"nativeSrc": "64990:45:40",
"nodeType": "YulFunctionCall",
"src": "64990:45:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "64980:6:40",
"nodeType": "YulTypedName",
"src": "64980:6:40",
"type": ""
}
]
},
{
"nativeSrc": "65044:21:40",
"nodeType": "YulVariableDeclaration",
"src": "65044:21:40",
"value": {
"name": "array",
"nativeSrc": "65060:5:40",
"nodeType": "YulIdentifier",
"src": "65060:5:40"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "65048:8:40",
"nodeType": "YulTypedName",
"src": "65048:8:40",
"type": ""
}
]
},
{
"nativeSrc": "65075:50:40",
"nodeType": "YulAssignment",
"src": "65075:50:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "65115:8:40",
"nodeType": "YulIdentifier",
"src": "65115:8:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "65102:12:40",
"nodeType": "YulIdentifier",
"src": "65102:12:40"
},
"nativeSrc": "65102:22:40",
"nodeType": "YulFunctionCall",
"src": "65102:22:40"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "65084:17:40",
"nodeType": "YulIdentifier",
"src": "65084:17:40"
},
"nativeSrc": "65084:41:40",
"nodeType": "YulFunctionCall",
"src": "65084:41:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "65075:5:40",
"nodeType": "YulIdentifier",
"src": "65075:5:40"
}
]
},
{
"body": {
"nativeSrc": "65153:260:40",
"nodeType": "YulBlock",
"src": "65153:260:40",
"statements": [
{
"nativeSrc": "65167:236:40",
"nodeType": "YulAssignment",
"src": "65167:236:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "65197:5:40",
"nodeType": "YulIdentifier",
"src": "65197:5:40"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "65264:1:40",
"nodeType": "YulLiteral",
"src": "65264:1:40",
"type": "",
"value": "8"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "65271:2:40",
"nodeType": "YulLiteral",
"src": "65271:2:40",
"type": "",
"value": "32"
},
{
"name": "length",
"nativeSrc": "65275:6:40",
"nodeType": "YulIdentifier",
"src": "65275:6:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "65267:3:40",
"nodeType": "YulIdentifier",
"src": "65267:3:40"
},
"nativeSrc": "65267:15:40",
"nodeType": "YulFunctionCall",
"src": "65267:15:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "65260:3:40",
"nodeType": "YulIdentifier",
"src": "65260:3:40"
},
"nativeSrc": "65260:23:40",
"nodeType": "YulFunctionCall",
"src": "65260:23:40"
},
{
"kind": "number",
"nativeSrc": "65305:66:40",
"nodeType": "YulLiteral",
"src": "65305:66:40",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "65220:18:40",
"nodeType": "YulIdentifier",
"src": "65220:18:40"
},
"nativeSrc": "65220:169:40",
"nodeType": "YulFunctionCall",
"src": "65220:169:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "65176:3:40",
"nodeType": "YulIdentifier",
"src": "65176:3:40"
},
"nativeSrc": "65176:227:40",
"nodeType": "YulFunctionCall",
"src": "65176:227:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "65167:5:40",
"nodeType": "YulIdentifier",
"src": "65167:5:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "65141:6:40",
"nodeType": "YulIdentifier",
"src": "65141:6:40"
},
{
"kind": "number",
"nativeSrc": "65149:2:40",
"nodeType": "YulLiteral",
"src": "65149:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "65138:2:40",
"nodeType": "YulIdentifier",
"src": "65138:2:40"
},
"nativeSrc": "65138:14:40",
"nodeType": "YulFunctionCall",
"src": "65138:14:40"
},
"nativeSrc": "65135:278:40",
"nodeType": "YulIf",
"src": "65135:278:40"
}
]
},
"name": "convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32",
"nativeSrc": "64868:552:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "64944:5:40",
"nodeType": "YulTypedName",
"src": "64944:5:40",
"type": ""
},
{
"name": "len",
"nativeSrc": "64951:3:40",
"nodeType": "YulTypedName",
"src": "64951:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "64959:5:40",
"nodeType": "YulTypedName",
"src": "64959:5:40",
"type": ""
}
],
"src": "64868:552:40"
},
{
"body": {
"nativeSrc": "65470:105:40",
"nodeType": "YulBlock",
"src": "65470:105:40",
"statements": [
{
"nativeSrc": "65480:89:40",
"nodeType": "YulAssignment",
"src": "65480:89:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "65495:5:40",
"nodeType": "YulIdentifier",
"src": "65495:5:40"
},
{
"kind": "number",
"nativeSrc": "65502:66:40",
"nodeType": "YulLiteral",
"src": "65502:66:40",
"type": "",
"value": "0xffffffffffffffff000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nativeSrc": "65491:3:40",
"nodeType": "YulIdentifier",
"src": "65491:3:40"
},
"nativeSrc": "65491:78:40",
"nodeType": "YulFunctionCall",
"src": "65491:78:40"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "65480:7:40",
"nodeType": "YulIdentifier",
"src": "65480:7:40"
}
]
}
]
},
"name": "cleanup_t_bytes8",
"nativeSrc": "65426:149:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "65452:5:40",
"nodeType": "YulTypedName",
"src": "65452:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "65462:7:40",
"nodeType": "YulTypedName",
"src": "65462:7:40",
"type": ""
}
],
"src": "65426:149:40"
},
{
"body": {
"nativeSrc": "65677:452:40",
"nodeType": "YulBlock",
"src": "65677:452:40",
"statements": [
{
"nativeSrc": "65688:59:40",
"nodeType": "YulVariableDeclaration",
"src": "65688:59:40",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "65736:5:40",
"nodeType": "YulIdentifier",
"src": "65736:5:40"
},
{
"name": "len",
"nativeSrc": "65743:3:40",
"nodeType": "YulIdentifier",
"src": "65743:3:40"
}
],
"functionName": {
"name": "array_length_t_bytes_calldata_ptr",
"nativeSrc": "65702:33:40",
"nodeType": "YulIdentifier",
"src": "65702:33:40"
},
"nativeSrc": "65702:45:40",
"nodeType": "YulFunctionCall",
"src": "65702:45:40"
},
"variables": [
{
"name": "length",
"nativeSrc": "65692:6:40",
"nodeType": "YulTypedName",
"src": "65692:6:40",
"type": ""
}
]
},
{
"nativeSrc": "65756:21:40",
"nodeType": "YulVariableDeclaration",
"src": "65756:21:40",
"value": {
"name": "array",
"nativeSrc": "65772:5:40",
"nodeType": "YulIdentifier",
"src": "65772:5:40"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "65760:8:40",
"nodeType": "YulTypedName",
"src": "65760:8:40",
"type": ""
}
]
},
{
"nativeSrc": "65787:49:40",
"nodeType": "YulAssignment",
"src": "65787:49:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "65826:8:40",
"nodeType": "YulIdentifier",
"src": "65826:8:40"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "65813:12:40",
"nodeType": "YulIdentifier",
"src": "65813:12:40"
},
"nativeSrc": "65813:22:40",
"nodeType": "YulFunctionCall",
"src": "65813:22:40"
}
],
"functionName": {
"name": "cleanup_t_bytes8",
"nativeSrc": "65796:16:40",
"nodeType": "YulIdentifier",
"src": "65796:16:40"
},
"nativeSrc": "65796:40:40",
"nodeType": "YulFunctionCall",
"src": "65796:40:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "65787:5:40",
"nodeType": "YulIdentifier",
"src": "65787:5:40"
}
]
},
{
"body": {
"nativeSrc": "65863:259:40",
"nodeType": "YulBlock",
"src": "65863:259:40",
"statements": [
{
"nativeSrc": "65877:235:40",
"nodeType": "YulAssignment",
"src": "65877:235:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "65907:5:40",
"nodeType": "YulIdentifier",
"src": "65907:5:40"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "65974:1:40",
"nodeType": "YulLiteral",
"src": "65974:1:40",
"type": "",
"value": "8"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "65981:1:40",
"nodeType": "YulLiteral",
"src": "65981:1:40",
"type": "",
"value": "8"
},
{
"name": "length",
"nativeSrc": "65984:6:40",
"nodeType": "YulIdentifier",
"src": "65984:6:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "65977:3:40",
"nodeType": "YulIdentifier",
"src": "65977:3:40"
},
"nativeSrc": "65977:14:40",
"nodeType": "YulFunctionCall",
"src": "65977:14:40"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "65970:3:40",
"nodeType": "YulIdentifier",
"src": "65970:3:40"
},
"nativeSrc": "65970:22:40",
"nodeType": "YulFunctionCall",
"src": "65970:22:40"
},
{
"kind": "number",
"nativeSrc": "66014:66:40",
"nodeType": "YulLiteral",
"src": "66014:66:40",
"type": "",
"value": "0xffffffffffffffff000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "65930:18:40",
"nodeType": "YulIdentifier",
"src": "65930:18:40"
},
"nativeSrc": "65930:168:40",
"nodeType": "YulFunctionCall",
"src": "65930:168:40"
}
],
"functionName": {
"name": "and",
"nativeSrc": "65886:3:40",
"nodeType": "YulIdentifier",
"src": "65886:3:40"
},
"nativeSrc": "65886:226:40",
"nodeType": "YulFunctionCall",
"src": "65886:226:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "65877:5:40",
"nodeType": "YulIdentifier",
"src": "65877:5:40"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "65852:6:40",
"nodeType": "YulIdentifier",
"src": "65852:6:40"
},
{
"kind": "number",
"nativeSrc": "65860:1:40",
"nodeType": "YulLiteral",
"src": "65860:1:40",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "65849:2:40",
"nodeType": "YulIdentifier",
"src": "65849:2:40"
},
"nativeSrc": "65849:13:40",
"nodeType": "YulFunctionCall",
"src": "65849:13:40"
},
"nativeSrc": "65846:276:40",
"nodeType": "YulIf",
"src": "65846:276:40"
}
]
},
"name": "convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes8",
"nativeSrc": "65581:548:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "65656:5:40",
"nodeType": "YulTypedName",
"src": "65656:5:40",
"type": ""
},
{
"name": "len",
"nativeSrc": "65663:3:40",
"nodeType": "YulTypedName",
"src": "65663:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "65671:5:40",
"nodeType": "YulTypedName",
"src": "65671:5:40",
"type": ""
}
],
"src": "65581:548:40"
},
{
"body": {
"nativeSrc": "66178:53:40",
"nodeType": "YulBlock",
"src": "66178:53:40",
"statements": [
{
"nativeSrc": "66188:36:40",
"nodeType": "YulAssignment",
"src": "66188:36:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "66213:3:40",
"nodeType": "YulLiteral",
"src": "66213:3:40",
"type": "",
"value": "192"
},
{
"name": "value",
"nativeSrc": "66218:5:40",
"nodeType": "YulIdentifier",
"src": "66218:5:40"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "66209:3:40",
"nodeType": "YulIdentifier",
"src": "66209:3:40"
},
"nativeSrc": "66209:15:40",
"nodeType": "YulFunctionCall",
"src": "66209:15:40"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "66188:8:40",
"nodeType": "YulIdentifier",
"src": "66188:8:40"
}
]
}
]
},
"name": "shift_left_192",
"nativeSrc": "66135:96:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "66159:5:40",
"nodeType": "YulTypedName",
"src": "66159:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "66169:8:40",
"nodeType": "YulTypedName",
"src": "66169:8:40",
"type": ""
}
],
"src": "66135:96:40"
},
{
"body": {
"nativeSrc": "66283:48:40",
"nodeType": "YulBlock",
"src": "66283:48:40",
"statements": [
{
"nativeSrc": "66293:32:40",
"nodeType": "YulAssignment",
"src": "66293:32:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "66319:5:40",
"nodeType": "YulIdentifier",
"src": "66319:5:40"
}
],
"functionName": {
"name": "shift_left_192",
"nativeSrc": "66304:14:40",
"nodeType": "YulIdentifier",
"src": "66304:14:40"
},
"nativeSrc": "66304:21:40",
"nodeType": "YulFunctionCall",
"src": "66304:21:40"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "66293:7:40",
"nodeType": "YulIdentifier",
"src": "66293:7:40"
}
]
}
]
},
"name": "leftAlign_t_uint64",
"nativeSrc": "66237:94:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "66265:5:40",
"nodeType": "YulTypedName",
"src": "66265:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "66275:7:40",
"nodeType": "YulTypedName",
"src": "66275:7:40",
"type": ""
}
],
"src": "66237:94:40"
},
{
"body": {
"nativeSrc": "66418:72:40",
"nodeType": "YulBlock",
"src": "66418:72:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "66435:3:40",
"nodeType": "YulIdentifier",
"src": "66435:3:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "66476:5:40",
"nodeType": "YulIdentifier",
"src": "66476:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint64",
"nativeSrc": "66459:16:40",
"nodeType": "YulIdentifier",
"src": "66459:16:40"
},
"nativeSrc": "66459:23:40",
"nodeType": "YulFunctionCall",
"src": "66459:23:40"
}
],
"functionName": {
"name": "leftAlign_t_uint64",
"nativeSrc": "66440:18:40",
"nodeType": "YulIdentifier",
"src": "66440:18:40"
},
"nativeSrc": "66440:43:40",
"nodeType": "YulFunctionCall",
"src": "66440:43:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "66428:6:40",
"nodeType": "YulIdentifier",
"src": "66428:6:40"
},
"nativeSrc": "66428:56:40",
"nodeType": "YulFunctionCall",
"src": "66428:56:40"
},
"nativeSrc": "66428:56:40",
"nodeType": "YulExpressionStatement",
"src": "66428:56:40"
}
]
},
"name": "abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack",
"nativeSrc": "66337:153:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "66406:5:40",
"nodeType": "YulTypedName",
"src": "66406:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "66413:3:40",
"nodeType": "YulTypedName",
"src": "66413:3:40",
"type": ""
}
],
"src": "66337:153:40"
},
{
"body": {
"nativeSrc": "66539:53:40",
"nodeType": "YulBlock",
"src": "66539:53:40",
"statements": [
{
"nativeSrc": "66549:36:40",
"nodeType": "YulAssignment",
"src": "66549:36:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "66574:3:40",
"nodeType": "YulLiteral",
"src": "66574:3:40",
"type": "",
"value": "224"
},
{
"name": "value",
"nativeSrc": "66579:5:40",
"nodeType": "YulIdentifier",
"src": "66579:5:40"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "66570:3:40",
"nodeType": "YulIdentifier",
"src": "66570:3:40"
},
"nativeSrc": "66570:15:40",
"nodeType": "YulFunctionCall",
"src": "66570:15:40"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "66549:8:40",
"nodeType": "YulIdentifier",
"src": "66549:8:40"
}
]
}
]
},
"name": "shift_left_224",
"nativeSrc": "66496:96:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "66520:5:40",
"nodeType": "YulTypedName",
"src": "66520:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "66530:8:40",
"nodeType": "YulTypedName",
"src": "66530:8:40",
"type": ""
}
],
"src": "66496:96:40"
},
{
"body": {
"nativeSrc": "66644:48:40",
"nodeType": "YulBlock",
"src": "66644:48:40",
"statements": [
{
"nativeSrc": "66654:32:40",
"nodeType": "YulAssignment",
"src": "66654:32:40",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "66680:5:40",
"nodeType": "YulIdentifier",
"src": "66680:5:40"
}
],
"functionName": {
"name": "shift_left_224",
"nativeSrc": "66665:14:40",
"nodeType": "YulIdentifier",
"src": "66665:14:40"
},
"nativeSrc": "66665:21:40",
"nodeType": "YulFunctionCall",
"src": "66665:21:40"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "66654:7:40",
"nodeType": "YulIdentifier",
"src": "66654:7:40"
}
]
}
]
},
"name": "leftAlign_t_uint32",
"nativeSrc": "66598:94:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "66626:5:40",
"nodeType": "YulTypedName",
"src": "66626:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "66636:7:40",
"nodeType": "YulTypedName",
"src": "66636:7:40",
"type": ""
}
],
"src": "66598:94:40"
},
{
"body": {
"nativeSrc": "66779:72:40",
"nodeType": "YulBlock",
"src": "66779:72:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "66796:3:40",
"nodeType": "YulIdentifier",
"src": "66796:3:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "66837:5:40",
"nodeType": "YulIdentifier",
"src": "66837:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint32",
"nativeSrc": "66820:16:40",
"nodeType": "YulIdentifier",
"src": "66820:16:40"
},
"nativeSrc": "66820:23:40",
"nodeType": "YulFunctionCall",
"src": "66820:23:40"
}
],
"functionName": {
"name": "leftAlign_t_uint32",
"nativeSrc": "66801:18:40",
"nodeType": "YulIdentifier",
"src": "66801:18:40"
},
"nativeSrc": "66801:43:40",
"nodeType": "YulFunctionCall",
"src": "66801:43:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "66789:6:40",
"nodeType": "YulIdentifier",
"src": "66789:6:40"
},
"nativeSrc": "66789:56:40",
"nodeType": "YulFunctionCall",
"src": "66789:56:40"
},
"nativeSrc": "66789:56:40",
"nodeType": "YulExpressionStatement",
"src": "66789:56:40"
}
]
},
"name": "abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack",
"nativeSrc": "66698:153:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "66767:5:40",
"nodeType": "YulTypedName",
"src": "66767:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "66774:3:40",
"nodeType": "YulTypedName",
"src": "66774:3:40",
"type": ""
}
],
"src": "66698:153:40"
},
{
"body": {
"nativeSrc": "66904:32:40",
"nodeType": "YulBlock",
"src": "66904:32:40",
"statements": [
{
"nativeSrc": "66914:16:40",
"nodeType": "YulAssignment",
"src": "66914:16:40",
"value": {
"name": "value",
"nativeSrc": "66925:5:40",
"nodeType": "YulIdentifier",
"src": "66925:5:40"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "66914:7:40",
"nodeType": "YulIdentifier",
"src": "66914:7:40"
}
]
}
]
},
"name": "leftAlign_t_uint256",
"nativeSrc": "66857:79:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "66886:5:40",
"nodeType": "YulTypedName",
"src": "66886:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "66896:7:40",
"nodeType": "YulTypedName",
"src": "66896:7:40",
"type": ""
}
],
"src": "66857:79:40"
},
{
"body": {
"nativeSrc": "67025:74:40",
"nodeType": "YulBlock",
"src": "67025:74:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "67042:3:40",
"nodeType": "YulIdentifier",
"src": "67042:3:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "67085:5:40",
"nodeType": "YulIdentifier",
"src": "67085:5:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "67067:17:40",
"nodeType": "YulIdentifier",
"src": "67067:17:40"
},
"nativeSrc": "67067:24:40",
"nodeType": "YulFunctionCall",
"src": "67067:24:40"
}
],
"functionName": {
"name": "leftAlign_t_uint256",
"nativeSrc": "67047:19:40",
"nodeType": "YulIdentifier",
"src": "67047:19:40"
},
"nativeSrc": "67047:45:40",
"nodeType": "YulFunctionCall",
"src": "67047:45:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "67035:6:40",
"nodeType": "YulIdentifier",
"src": "67035:6:40"
},
"nativeSrc": "67035:58:40",
"nodeType": "YulFunctionCall",
"src": "67035:58:40"
},
"nativeSrc": "67035:58:40",
"nodeType": "YulExpressionStatement",
"src": "67035:58:40"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nativeSrc": "66942:157:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "67013:5:40",
"nodeType": "YulTypedName",
"src": "67013:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "67020:3:40",
"nodeType": "YulTypedName",
"src": "67020:3:40",
"type": ""
}
],
"src": "66942:157:40"
},
{
"body": {
"nativeSrc": "67319:470:40",
"nodeType": "YulBlock",
"src": "67319:470:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "67390:6:40",
"nodeType": "YulIdentifier",
"src": "67390:6:40"
},
{
"name": "pos",
"nativeSrc": "67399:3:40",
"nodeType": "YulIdentifier",
"src": "67399:3:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack",
"nativeSrc": "67330:59:40",
"nodeType": "YulIdentifier",
"src": "67330:59:40"
},
"nativeSrc": "67330:73:40",
"nodeType": "YulFunctionCall",
"src": "67330:73:40"
},
"nativeSrc": "67330:73:40",
"nodeType": "YulExpressionStatement",
"src": "67330:73:40"
},
{
"nativeSrc": "67412:18:40",
"nodeType": "YulAssignment",
"src": "67412:18:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "67423:3:40",
"nodeType": "YulIdentifier",
"src": "67423:3:40"
},
{
"kind": "number",
"nativeSrc": "67428:1:40",
"nodeType": "YulLiteral",
"src": "67428:1:40",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "67419:3:40",
"nodeType": "YulIdentifier",
"src": "67419:3:40"
},
"nativeSrc": "67419:11:40",
"nodeType": "YulFunctionCall",
"src": "67419:11:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "67412:3:40",
"nodeType": "YulIdentifier",
"src": "67412:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "67500:6:40",
"nodeType": "YulIdentifier",
"src": "67500:6:40"
},
{
"name": "pos",
"nativeSrc": "67509:3:40",
"nodeType": "YulIdentifier",
"src": "67509:3:40"
}
],
"functionName": {
"name": "abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack",
"nativeSrc": "67440:59:40",
"nodeType": "YulIdentifier",
"src": "67440:59:40"
},
"nativeSrc": "67440:73:40",
"nodeType": "YulFunctionCall",
"src": "67440:73:40"
},
"nativeSrc": "67440:73:40",
"nodeType": "YulExpressionStatement",
"src": "67440:73:40"
},
{
"nativeSrc": "67522:18:40",
"nodeType": "YulAssignment",
"src": "67522:18:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "67533:3:40",
"nodeType": "YulIdentifier",
"src": "67533:3:40"
},
{
"kind": "number",
"nativeSrc": "67538:1:40",
"nodeType": "YulLiteral",
"src": "67538:1:40",
"type": "",
"value": "4"
}
],
"functionName": {
"name": "add",
"nativeSrc": "67529:3:40",
"nodeType": "YulIdentifier",
"src": "67529:3:40"
},
"nativeSrc": "67529:11:40",
"nodeType": "YulFunctionCall",
"src": "67529:11:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "67522:3:40",
"nodeType": "YulIdentifier",
"src": "67522:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "67612:6:40",
"nodeType": "YulIdentifier",
"src": "67612:6:40"
},
{
"name": "pos",
"nativeSrc": "67621:3:40",
"nodeType": "YulIdentifier",
"src": "67621:3:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nativeSrc": "67550:61:40",
"nodeType": "YulIdentifier",
"src": "67550:61:40"
},
"nativeSrc": "67550:75:40",
"nodeType": "YulFunctionCall",
"src": "67550:75:40"
},
"nativeSrc": "67550:75:40",
"nodeType": "YulExpressionStatement",
"src": "67550:75:40"
},
{
"nativeSrc": "67634:19:40",
"nodeType": "YulAssignment",
"src": "67634:19:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "67645:3:40",
"nodeType": "YulIdentifier",
"src": "67645:3:40"
},
{
"kind": "number",
"nativeSrc": "67650:2:40",
"nodeType": "YulLiteral",
"src": "67650:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "67641:3:40",
"nodeType": "YulIdentifier",
"src": "67641:3:40"
},
"nativeSrc": "67641:12:40",
"nodeType": "YulFunctionCall",
"src": "67641:12:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "67634:3:40",
"nodeType": "YulIdentifier",
"src": "67634:3:40"
}
]
},
{
"nativeSrc": "67663:100:40",
"nodeType": "YulAssignment",
"src": "67663:100:40",
"value": {
"arguments": [
{
"name": "value3",
"nativeSrc": "67750:6:40",
"nodeType": "YulIdentifier",
"src": "67750:6:40"
},
{
"name": "pos",
"nativeSrc": "67759:3:40",
"nodeType": "YulIdentifier",
"src": "67759:3:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "67670:79:40",
"nodeType": "YulIdentifier",
"src": "67670:79:40"
},
"nativeSrc": "67670:93:40",
"nodeType": "YulFunctionCall",
"src": "67670:93:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "67663:3:40",
"nodeType": "YulIdentifier",
"src": "67663:3:40"
}
]
},
{
"nativeSrc": "67773:10:40",
"nodeType": "YulAssignment",
"src": "67773:10:40",
"value": {
"name": "pos",
"nativeSrc": "67780:3:40",
"nodeType": "YulIdentifier",
"src": "67780:3:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "67773:3:40",
"nodeType": "YulIdentifier",
"src": "67773:3:40"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_uint64_t_uint32_t_uint256_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "67105:684:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "67274:3:40",
"nodeType": "YulTypedName",
"src": "67274:3:40",
"type": ""
},
{
"name": "value3",
"nativeSrc": "67280:6:40",
"nodeType": "YulTypedName",
"src": "67280:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "67288:6:40",
"nodeType": "YulTypedName",
"src": "67288:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "67296:6:40",
"nodeType": "YulTypedName",
"src": "67296:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "67304:6:40",
"nodeType": "YulTypedName",
"src": "67304:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "67315:3:40",
"nodeType": "YulTypedName",
"src": "67315:3:40",
"type": ""
}
],
"src": "67105:684:40"
},
{
"body": {
"nativeSrc": "67839:147:40",
"nodeType": "YulBlock",
"src": "67839:147:40",
"statements": [
{
"nativeSrc": "67849:25:40",
"nodeType": "YulAssignment",
"src": "67849:25:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "67872:1:40",
"nodeType": "YulIdentifier",
"src": "67872:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "67854:17:40",
"nodeType": "YulIdentifier",
"src": "67854:17:40"
},
"nativeSrc": "67854:20:40",
"nodeType": "YulFunctionCall",
"src": "67854:20:40"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "67849:1:40",
"nodeType": "YulIdentifier",
"src": "67849:1:40"
}
]
},
{
"nativeSrc": "67883:25:40",
"nodeType": "YulAssignment",
"src": "67883:25:40",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "67906:1:40",
"nodeType": "YulIdentifier",
"src": "67906:1:40"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "67888:17:40",
"nodeType": "YulIdentifier",
"src": "67888:17:40"
},
"nativeSrc": "67888:20:40",
"nodeType": "YulFunctionCall",
"src": "67888:20:40"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "67883:1:40",
"nodeType": "YulIdentifier",
"src": "67883:1:40"
}
]
},
{
"nativeSrc": "67917:16:40",
"nodeType": "YulAssignment",
"src": "67917:16:40",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "67928:1:40",
"nodeType": "YulIdentifier",
"src": "67928:1:40"
},
{
"name": "y",
"nativeSrc": "67931:1:40",
"nodeType": "YulIdentifier",
"src": "67931:1:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "67924:3:40",
"nodeType": "YulIdentifier",
"src": "67924:3:40"
},
"nativeSrc": "67924:9:40",
"nodeType": "YulFunctionCall",
"src": "67924:9:40"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "67917:3:40",
"nodeType": "YulIdentifier",
"src": "67917:3:40"
}
]
},
{
"body": {
"nativeSrc": "67957:22:40",
"nodeType": "YulBlock",
"src": "67957:22:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "67959:16:40",
"nodeType": "YulIdentifier",
"src": "67959:16:40"
},
"nativeSrc": "67959:18:40",
"nodeType": "YulFunctionCall",
"src": "67959:18:40"
},
"nativeSrc": "67959:18:40",
"nodeType": "YulExpressionStatement",
"src": "67959:18:40"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "67949:1:40",
"nodeType": "YulIdentifier",
"src": "67949:1:40"
},
{
"name": "sum",
"nativeSrc": "67952:3:40",
"nodeType": "YulIdentifier",
"src": "67952:3:40"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "67946:2:40",
"nodeType": "YulIdentifier",
"src": "67946:2:40"
},
"nativeSrc": "67946:10:40",
"nodeType": "YulFunctionCall",
"src": "67946:10:40"
},
"nativeSrc": "67943:36:40",
"nodeType": "YulIf",
"src": "67943:36:40"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "67795:191:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "67826:1:40",
"nodeType": "YulTypedName",
"src": "67826:1:40",
"type": ""
},
{
"name": "y",
"nativeSrc": "67829:1:40",
"nodeType": "YulTypedName",
"src": "67829:1:40",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "67835:3:40",
"nodeType": "YulTypedName",
"src": "67835:3:40",
"type": ""
}
],
"src": "67795:191:40"
},
{
"body": {
"nativeSrc": "68039:32:40",
"nodeType": "YulBlock",
"src": "68039:32:40",
"statements": [
{
"nativeSrc": "68049:16:40",
"nodeType": "YulAssignment",
"src": "68049:16:40",
"value": {
"name": "value",
"nativeSrc": "68060:5:40",
"nodeType": "YulIdentifier",
"src": "68060:5:40"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "68049:7:40",
"nodeType": "YulIdentifier",
"src": "68049:7:40"
}
]
}
]
},
"name": "leftAlign_t_bytes32",
"nativeSrc": "67992:79:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "68021:5:40",
"nodeType": "YulTypedName",
"src": "68021:5:40",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "68031:7:40",
"nodeType": "YulTypedName",
"src": "68031:7:40",
"type": ""
}
],
"src": "67992:79:40"
},
{
"body": {
"nativeSrc": "68160:74:40",
"nodeType": "YulBlock",
"src": "68160:74:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "68177:3:40",
"nodeType": "YulIdentifier",
"src": "68177:3:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "68220:5:40",
"nodeType": "YulIdentifier",
"src": "68220:5:40"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "68202:17:40",
"nodeType": "YulIdentifier",
"src": "68202:17:40"
},
"nativeSrc": "68202:24:40",
"nodeType": "YulFunctionCall",
"src": "68202:24:40"
}
],
"functionName": {
"name": "leftAlign_t_bytes32",
"nativeSrc": "68182:19:40",
"nodeType": "YulIdentifier",
"src": "68182:19:40"
},
"nativeSrc": "68182:45:40",
"nodeType": "YulFunctionCall",
"src": "68182:45:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "68170:6:40",
"nodeType": "YulIdentifier",
"src": "68170:6:40"
},
"nativeSrc": "68170:58:40",
"nodeType": "YulFunctionCall",
"src": "68170:58:40"
},
"nativeSrc": "68170:58:40",
"nodeType": "YulExpressionStatement",
"src": "68170:58:40"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "68077:157:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "68148:5:40",
"nodeType": "YulTypedName",
"src": "68148:5:40",
"type": ""
},
{
"name": "pos",
"nativeSrc": "68155:3:40",
"nodeType": "YulTypedName",
"src": "68155:3:40",
"type": ""
}
],
"src": "68077:157:40"
},
{
"body": {
"nativeSrc": "68382:250:40",
"nodeType": "YulBlock",
"src": "68382:250:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "68455:6:40",
"nodeType": "YulIdentifier",
"src": "68455:6:40"
},
{
"name": "pos",
"nativeSrc": "68464:3:40",
"nodeType": "YulIdentifier",
"src": "68464:3:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "68393:61:40",
"nodeType": "YulIdentifier",
"src": "68393:61:40"
},
"nativeSrc": "68393:75:40",
"nodeType": "YulFunctionCall",
"src": "68393:75:40"
},
"nativeSrc": "68393:75:40",
"nodeType": "YulExpressionStatement",
"src": "68393:75:40"
},
{
"nativeSrc": "68477:19:40",
"nodeType": "YulAssignment",
"src": "68477:19:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "68488:3:40",
"nodeType": "YulIdentifier",
"src": "68488:3:40"
},
{
"kind": "number",
"nativeSrc": "68493:2:40",
"nodeType": "YulLiteral",
"src": "68493:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "68484:3:40",
"nodeType": "YulIdentifier",
"src": "68484:3:40"
},
"nativeSrc": "68484:12:40",
"nodeType": "YulFunctionCall",
"src": "68484:12:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "68477:3:40",
"nodeType": "YulIdentifier",
"src": "68477:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "68566:6:40",
"nodeType": "YulIdentifier",
"src": "68566:6:40"
},
{
"name": "pos",
"nativeSrc": "68575:3:40",
"nodeType": "YulIdentifier",
"src": "68575:3:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack",
"nativeSrc": "68506:59:40",
"nodeType": "YulIdentifier",
"src": "68506:59:40"
},
"nativeSrc": "68506:73:40",
"nodeType": "YulFunctionCall",
"src": "68506:73:40"
},
"nativeSrc": "68506:73:40",
"nodeType": "YulExpressionStatement",
"src": "68506:73:40"
},
{
"nativeSrc": "68588:18:40",
"nodeType": "YulAssignment",
"src": "68588:18:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "68599:3:40",
"nodeType": "YulIdentifier",
"src": "68599:3:40"
},
{
"kind": "number",
"nativeSrc": "68604:1:40",
"nodeType": "YulLiteral",
"src": "68604:1:40",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "68595:3:40",
"nodeType": "YulIdentifier",
"src": "68595:3:40"
},
"nativeSrc": "68595:11:40",
"nodeType": "YulFunctionCall",
"src": "68595:11:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "68588:3:40",
"nodeType": "YulIdentifier",
"src": "68588:3:40"
}
]
},
{
"nativeSrc": "68616:10:40",
"nodeType": "YulAssignment",
"src": "68616:10:40",
"value": {
"name": "pos",
"nativeSrc": "68623:3:40",
"nodeType": "YulIdentifier",
"src": "68623:3:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "68616:3:40",
"nodeType": "YulIdentifier",
"src": "68616:3:40"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes32_t_uint64__to_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "68240:392:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "68353:3:40",
"nodeType": "YulTypedName",
"src": "68353:3:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "68359:6:40",
"nodeType": "YulTypedName",
"src": "68359:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "68367:6:40",
"nodeType": "YulTypedName",
"src": "68367:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "68378:3:40",
"nodeType": "YulTypedName",
"src": "68378:3:40",
"type": ""
}
],
"src": "68240:392:40"
},
{
"body": {
"nativeSrc": "68854:473:40",
"nodeType": "YulBlock",
"src": "68854:473:40",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "68927:6:40",
"nodeType": "YulIdentifier",
"src": "68927:6:40"
},
{
"name": "pos",
"nativeSrc": "68936:3:40",
"nodeType": "YulIdentifier",
"src": "68936:3:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "68865:61:40",
"nodeType": "YulIdentifier",
"src": "68865:61:40"
},
"nativeSrc": "68865:75:40",
"nodeType": "YulFunctionCall",
"src": "68865:75:40"
},
"nativeSrc": "68865:75:40",
"nodeType": "YulExpressionStatement",
"src": "68865:75:40"
},
{
"nativeSrc": "68949:19:40",
"nodeType": "YulAssignment",
"src": "68949:19:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "68960:3:40",
"nodeType": "YulIdentifier",
"src": "68960:3:40"
},
{
"kind": "number",
"nativeSrc": "68965:2:40",
"nodeType": "YulLiteral",
"src": "68965:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "68956:3:40",
"nodeType": "YulIdentifier",
"src": "68956:3:40"
},
"nativeSrc": "68956:12:40",
"nodeType": "YulFunctionCall",
"src": "68956:12:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "68949:3:40",
"nodeType": "YulIdentifier",
"src": "68949:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "69038:6:40",
"nodeType": "YulIdentifier",
"src": "69038:6:40"
},
{
"name": "pos",
"nativeSrc": "69047:3:40",
"nodeType": "YulIdentifier",
"src": "69047:3:40"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack",
"nativeSrc": "68978:59:40",
"nodeType": "YulIdentifier",
"src": "68978:59:40"
},
"nativeSrc": "68978:73:40",
"nodeType": "YulFunctionCall",
"src": "68978:73:40"
},
"nativeSrc": "68978:73:40",
"nodeType": "YulExpressionStatement",
"src": "68978:73:40"
},
{
"nativeSrc": "69060:18:40",
"nodeType": "YulAssignment",
"src": "69060:18:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "69071:3:40",
"nodeType": "YulIdentifier",
"src": "69071:3:40"
},
{
"kind": "number",
"nativeSrc": "69076:1:40",
"nodeType": "YulLiteral",
"src": "69076:1:40",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "69067:3:40",
"nodeType": "YulIdentifier",
"src": "69067:3:40"
},
"nativeSrc": "69067:11:40",
"nodeType": "YulFunctionCall",
"src": "69067:11:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "69060:3:40",
"nodeType": "YulIdentifier",
"src": "69060:3:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "69150:6:40",
"nodeType": "YulIdentifier",
"src": "69150:6:40"
},
{
"name": "pos",
"nativeSrc": "69159:3:40",
"nodeType": "YulIdentifier",
"src": "69159:3:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "69088:61:40",
"nodeType": "YulIdentifier",
"src": "69088:61:40"
},
"nativeSrc": "69088:75:40",
"nodeType": "YulFunctionCall",
"src": "69088:75:40"
},
"nativeSrc": "69088:75:40",
"nodeType": "YulExpressionStatement",
"src": "69088:75:40"
},
{
"nativeSrc": "69172:19:40",
"nodeType": "YulAssignment",
"src": "69172:19:40",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "69183:3:40",
"nodeType": "YulIdentifier",
"src": "69183:3:40"
},
{
"kind": "number",
"nativeSrc": "69188:2:40",
"nodeType": "YulLiteral",
"src": "69188:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "69179:3:40",
"nodeType": "YulIdentifier",
"src": "69179:3:40"
},
"nativeSrc": "69179:12:40",
"nodeType": "YulFunctionCall",
"src": "69179:12:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "69172:3:40",
"nodeType": "YulIdentifier",
"src": "69172:3:40"
}
]
},
{
"nativeSrc": "69201:100:40",
"nodeType": "YulAssignment",
"src": "69201:100:40",
"value": {
"arguments": [
{
"name": "value3",
"nativeSrc": "69288:6:40",
"nodeType": "YulIdentifier",
"src": "69288:6:40"
},
{
"name": "pos",
"nativeSrc": "69297:3:40",
"nodeType": "YulIdentifier",
"src": "69297:3:40"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "69208:79:40",
"nodeType": "YulIdentifier",
"src": "69208:79:40"
},
"nativeSrc": "69208:93:40",
"nodeType": "YulFunctionCall",
"src": "69208:93:40"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "69201:3:40",
"nodeType": "YulIdentifier",
"src": "69201:3:40"
}
]
},
{
"nativeSrc": "69311:10:40",
"nodeType": "YulAssignment",
"src": "69311:10:40",
"value": {
"name": "pos",
"nativeSrc": "69318:3:40",
"nodeType": "YulIdentifier",
"src": "69318:3:40"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "69311:3:40",
"nodeType": "YulIdentifier",
"src": "69311:3:40"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes32_t_uint64_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint64_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "68638:689:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "68809:3:40",
"nodeType": "YulTypedName",
"src": "68809:3:40",
"type": ""
},
{
"name": "value3",
"nativeSrc": "68815:6:40",
"nodeType": "YulTypedName",
"src": "68815:6:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "68823:6:40",
"nodeType": "YulTypedName",
"src": "68823:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "68831:6:40",
"nodeType": "YulTypedName",
"src": "68831:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "68839:6:40",
"nodeType": "YulTypedName",
"src": "68839:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "68850:3:40",
"nodeType": "YulTypedName",
"src": "68850:3:40",
"type": ""
}
],
"src": "68638:689:40"
},
{
"body": {
"nativeSrc": "69396:80:40",
"nodeType": "YulBlock",
"src": "69396:80:40",
"statements": [
{
"nativeSrc": "69406:22:40",
"nodeType": "YulAssignment",
"src": "69406:22:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "69421:6:40",
"nodeType": "YulIdentifier",
"src": "69421:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "69415:5:40",
"nodeType": "YulIdentifier",
"src": "69415:5:40"
},
"nativeSrc": "69415:13:40",
"nodeType": "YulFunctionCall",
"src": "69415:13:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "69406:5:40",
"nodeType": "YulIdentifier",
"src": "69406:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "69464:5:40",
"nodeType": "YulIdentifier",
"src": "69464:5:40"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nativeSrc": "69437:26:40",
"nodeType": "YulIdentifier",
"src": "69437:26:40"
},
"nativeSrc": "69437:33:40",
"nodeType": "YulFunctionCall",
"src": "69437:33:40"
},
"nativeSrc": "69437:33:40",
"nodeType": "YulExpressionStatement",
"src": "69437:33:40"
}
]
},
"name": "abi_decode_t_bytes32_fromMemory",
"nativeSrc": "69333:143:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "69374:6:40",
"nodeType": "YulTypedName",
"src": "69374:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "69382:3:40",
"nodeType": "YulTypedName",
"src": "69382:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "69390:5:40",
"nodeType": "YulTypedName",
"src": "69390:5:40",
"type": ""
}
],
"src": "69333:143:40"
},
{
"body": {
"nativeSrc": "69544:79:40",
"nodeType": "YulBlock",
"src": "69544:79:40",
"statements": [
{
"nativeSrc": "69554:22:40",
"nodeType": "YulAssignment",
"src": "69554:22:40",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "69569:6:40",
"nodeType": "YulIdentifier",
"src": "69569:6:40"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "69563:5:40",
"nodeType": "YulIdentifier",
"src": "69563:5:40"
},
"nativeSrc": "69563:13:40",
"nodeType": "YulFunctionCall",
"src": "69563:13:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "69554:5:40",
"nodeType": "YulIdentifier",
"src": "69554:5:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "69611:5:40",
"nodeType": "YulIdentifier",
"src": "69611:5:40"
}
],
"functionName": {
"name": "validator_revert_t_uint64",
"nativeSrc": "69585:25:40",
"nodeType": "YulIdentifier",
"src": "69585:25:40"
},
"nativeSrc": "69585:32:40",
"nodeType": "YulFunctionCall",
"src": "69585:32:40"
},
"nativeSrc": "69585:32:40",
"nodeType": "YulExpressionStatement",
"src": "69585:32:40"
}
]
},
"name": "abi_decode_t_uint64_fromMemory",
"nativeSrc": "69482:141:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "69522:6:40",
"nodeType": "YulTypedName",
"src": "69522:6:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "69530:3:40",
"nodeType": "YulTypedName",
"src": "69530:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "69538:5:40",
"nodeType": "YulTypedName",
"src": "69538:5:40",
"type": ""
}
],
"src": "69482:141:40"
},
{
"body": {
"nativeSrc": "69758:715:40",
"nodeType": "YulBlock",
"src": "69758:715:40",
"statements": [
{
"body": {
"nativeSrc": "69802:83:40",
"nodeType": "YulBlock",
"src": "69802:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nativeSrc": "69804:77:40",
"nodeType": "YulIdentifier",
"src": "69804:77:40"
},
"nativeSrc": "69804:79:40",
"nodeType": "YulFunctionCall",
"src": "69804:79:40"
},
"nativeSrc": "69804:79:40",
"nodeType": "YulExpressionStatement",
"src": "69804:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nativeSrc": "69779:3:40",
"nodeType": "YulIdentifier",
"src": "69779:3:40"
},
{
"name": "headStart",
"nativeSrc": "69784:9:40",
"nodeType": "YulIdentifier",
"src": "69784:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "69775:3:40",
"nodeType": "YulIdentifier",
"src": "69775:3:40"
},
"nativeSrc": "69775:19:40",
"nodeType": "YulFunctionCall",
"src": "69775:19:40"
},
{
"kind": "number",
"nativeSrc": "69796:4:40",
"nodeType": "YulLiteral",
"src": "69796:4:40",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "69771:3:40",
"nodeType": "YulIdentifier",
"src": "69771:3:40"
},
"nativeSrc": "69771:30:40",
"nodeType": "YulFunctionCall",
"src": "69771:30:40"
},
"nativeSrc": "69768:117:40",
"nodeType": "YulIf",
"src": "69768:117:40"
},
{
"nativeSrc": "69894:30:40",
"nodeType": "YulAssignment",
"src": "69894:30:40",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "69919:4:40",
"nodeType": "YulLiteral",
"src": "69919:4:40",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "69903:15:40",
"nodeType": "YulIdentifier",
"src": "69903:15:40"
},
"nativeSrc": "69903:21:40",
"nodeType": "YulFunctionCall",
"src": "69903:21:40"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "69894:5:40",
"nodeType": "YulIdentifier",
"src": "69894:5:40"
}
]
},
{
"nativeSrc": "69934:161:40",
"nodeType": "YulBlock",
"src": "69934:161:40",
"statements": [
{
"nativeSrc": "69969:15:40",
"nodeType": "YulVariableDeclaration",
"src": "69969:15:40",
"value": {
"kind": "number",
"nativeSrc": "69983:1:40",
"nodeType": "YulLiteral",
"src": "69983:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "69973:6:40",
"nodeType": "YulTypedName",
"src": "69973:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "70009:5:40",
"nodeType": "YulIdentifier",
"src": "70009:5:40"
},
{
"kind": "number",
"nativeSrc": "70016:4:40",
"nodeType": "YulLiteral",
"src": "70016:4:40",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nativeSrc": "70005:3:40",
"nodeType": "YulIdentifier",
"src": "70005:3:40"
},
"nativeSrc": "70005:16:40",
"nodeType": "YulFunctionCall",
"src": "70005:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "70059:9:40",
"nodeType": "YulIdentifier",
"src": "70059:9:40"
},
{
"name": "offset",
"nativeSrc": "70070:6:40",
"nodeType": "YulIdentifier",
"src": "70070:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "70055:3:40",
"nodeType": "YulIdentifier",
"src": "70055:3:40"
},
"nativeSrc": "70055:22:40",
"nodeType": "YulFunctionCall",
"src": "70055:22:40"
},
{
"name": "end",
"nativeSrc": "70079:3:40",
"nodeType": "YulIdentifier",
"src": "70079:3:40"
}
],
"functionName": {
"name": "abi_decode_t_bytes32_fromMemory",
"nativeSrc": "70023:31:40",
"nodeType": "YulIdentifier",
"src": "70023:31:40"
},
"nativeSrc": "70023:60:40",
"nodeType": "YulFunctionCall",
"src": "70023:60:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "69998:6:40",
"nodeType": "YulIdentifier",
"src": "69998:6:40"
},
"nativeSrc": "69998:86:40",
"nodeType": "YulFunctionCall",
"src": "69998:86:40"
},
"nativeSrc": "69998:86:40",
"nodeType": "YulExpressionStatement",
"src": "69998:86:40"
}
]
},
{
"nativeSrc": "70105:162:40",
"nodeType": "YulBlock",
"src": "70105:162:40",
"statements": [
{
"nativeSrc": "70141:16:40",
"nodeType": "YulVariableDeclaration",
"src": "70141:16:40",
"value": {
"kind": "number",
"nativeSrc": "70155:2:40",
"nodeType": "YulLiteral",
"src": "70155:2:40",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "70145:6:40",
"nodeType": "YulTypedName",
"src": "70145:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "70182:5:40",
"nodeType": "YulIdentifier",
"src": "70182:5:40"
},
{
"kind": "number",
"nativeSrc": "70189:4:40",
"nodeType": "YulLiteral",
"src": "70189:4:40",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "70178:3:40",
"nodeType": "YulIdentifier",
"src": "70178:3:40"
},
"nativeSrc": "70178:16:40",
"nodeType": "YulFunctionCall",
"src": "70178:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "70231:9:40",
"nodeType": "YulIdentifier",
"src": "70231:9:40"
},
{
"name": "offset",
"nativeSrc": "70242:6:40",
"nodeType": "YulIdentifier",
"src": "70242:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "70227:3:40",
"nodeType": "YulIdentifier",
"src": "70227:3:40"
},
"nativeSrc": "70227:22:40",
"nodeType": "YulFunctionCall",
"src": "70227:22:40"
},
{
"name": "end",
"nativeSrc": "70251:3:40",
"nodeType": "YulIdentifier",
"src": "70251:3:40"
}
],
"functionName": {
"name": "abi_decode_t_uint64_fromMemory",
"nativeSrc": "70196:30:40",
"nodeType": "YulIdentifier",
"src": "70196:30:40"
},
"nativeSrc": "70196:59:40",
"nodeType": "YulFunctionCall",
"src": "70196:59:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "70171:6:40",
"nodeType": "YulIdentifier",
"src": "70171:6:40"
},
"nativeSrc": "70171:85:40",
"nodeType": "YulFunctionCall",
"src": "70171:85:40"
},
"nativeSrc": "70171:85:40",
"nodeType": "YulExpressionStatement",
"src": "70171:85:40"
}
]
},
{
"nativeSrc": "70277:189:40",
"nodeType": "YulBlock",
"src": "70277:189:40",
"statements": [
{
"nativeSrc": "70311:16:40",
"nodeType": "YulVariableDeclaration",
"src": "70311:16:40",
"value": {
"kind": "number",
"nativeSrc": "70325:2:40",
"nodeType": "YulLiteral",
"src": "70325:2:40",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "70315:6:40",
"nodeType": "YulTypedName",
"src": "70315:6:40",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "70352:5:40",
"nodeType": "YulIdentifier",
"src": "70352:5:40"
},
{
"kind": "number",
"nativeSrc": "70359:4:40",
"nodeType": "YulLiteral",
"src": "70359:4:40",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "70348:3:40",
"nodeType": "YulIdentifier",
"src": "70348:3:40"
},
"nativeSrc": "70348:16:40",
"nodeType": "YulFunctionCall",
"src": "70348:16:40"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "70430:9:40",
"nodeType": "YulIdentifier",
"src": "70430:9:40"
},
{
"name": "offset",
"nativeSrc": "70441:6:40",
"nodeType": "YulIdentifier",
"src": "70441:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "70426:3:40",
"nodeType": "YulIdentifier",
"src": "70426:3:40"
},
"nativeSrc": "70426:22:40",
"nodeType": "YulFunctionCall",
"src": "70426:22:40"
},
{
"name": "end",
"nativeSrc": "70450:3:40",
"nodeType": "YulIdentifier",
"src": "70450:3:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_MessagingFee_$33_memory_ptr_fromMemory",
"nativeSrc": "70366:59:40",
"nodeType": "YulIdentifier",
"src": "70366:59:40"
},
"nativeSrc": "70366:88:40",
"nodeType": "YulFunctionCall",
"src": "70366:88:40"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "70341:6:40",
"nodeType": "YulIdentifier",
"src": "70341:6:40"
},
"nativeSrc": "70341:114:40",
"nodeType": "YulFunctionCall",
"src": "70341:114:40"
},
"nativeSrc": "70341:114:40",
"nodeType": "YulExpressionStatement",
"src": "70341:114:40"
}
]
}
]
},
"name": "abi_decode_t_struct$_MessagingReceipt_$28_memory_ptr_fromMemory",
"nativeSrc": "69660:813:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "69733:9:40",
"nodeType": "YulTypedName",
"src": "69733:9:40",
"type": ""
},
{
"name": "end",
"nativeSrc": "69744:3:40",
"nodeType": "YulTypedName",
"src": "69744:3:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "69752:5:40",
"nodeType": "YulTypedName",
"src": "69752:5:40",
"type": ""
}
],
"src": "69660:813:40"
},
{
"body": {
"nativeSrc": "70588:307:40",
"nodeType": "YulBlock",
"src": "70588:307:40",
"statements": [
{
"body": {
"nativeSrc": "70635:83:40",
"nodeType": "YulBlock",
"src": "70635:83:40",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "70637:77:40",
"nodeType": "YulIdentifier",
"src": "70637:77:40"
},
"nativeSrc": "70637:79:40",
"nodeType": "YulFunctionCall",
"src": "70637:79:40"
},
"nativeSrc": "70637:79:40",
"nodeType": "YulExpressionStatement",
"src": "70637:79:40"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "70609:7:40",
"nodeType": "YulIdentifier",
"src": "70609:7:40"
},
{
"name": "headStart",
"nativeSrc": "70618:9:40",
"nodeType": "YulIdentifier",
"src": "70618:9:40"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "70605:3:40",
"nodeType": "YulIdentifier",
"src": "70605:3:40"
},
"nativeSrc": "70605:23:40",
"nodeType": "YulFunctionCall",
"src": "70605:23:40"
},
{
"kind": "number",
"nativeSrc": "70630:3:40",
"nodeType": "YulLiteral",
"src": "70630:3:40",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "70601:3:40",
"nodeType": "YulIdentifier",
"src": "70601:3:40"
},
"nativeSrc": "70601:33:40",
"nodeType": "YulFunctionCall",
"src": "70601:33:40"
},
"nativeSrc": "70598:120:40",
"nodeType": "YulIf",
"src": "70598:120:40"
},
{
"nativeSrc": "70728:160:40",
"nodeType": "YulBlock",
"src": "70728:160:40",
"statements": [
{
"nativeSrc": "70743:15:40",
"nodeType": "YulVariableDeclaration",
"src": "70743:15:40",
"value": {
"kind": "number",
"nativeSrc": "70757:1:40",
"nodeType": "YulLiteral",
"src": "70757:1:40",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "70747:6:40",
"nodeType": "YulTypedName",
"src": "70747:6:40",
"type": ""
}
]
},
{
"nativeSrc": "70772:106:40",
"nodeType": "YulAssignment",
"src": "70772:106:40",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "70850:9:40",
"nodeType": "YulIdentifier",
"src": "70850:9:40"
},
{
"name": "offset",
"nativeSrc": "70861:6:40",
"nodeType": "YulIdentifier",
"src": "70861:6:40"
}
],
"functionName": {
"name": "add",
"nativeSrc": "70846:3:40",
"nodeType": "YulIdentifier",
"src": "70846:3:40"
},
"nativeSrc": "70846:22:40",
"nodeType": "YulFunctionCall",
"src": "70846:22:40"
},
{
"name": "dataEnd",
"nativeSrc": "70870:7:40",
"nodeType": "YulIdentifier",
"src": "70870:7:40"
}
],
"functionName": {
"name": "abi_decode_t_struct$_MessagingReceipt_$28_memory_ptr_fromMemory",
"nativeSrc": "70782:63:40",
"nodeType": "YulIdentifier",
"src": "70782:63:40"
},
"nativeSrc": "70782:96:40",
"nodeType": "YulFunctionCall",
"src": "70782:96:40"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "70772:6:40",
"nodeType": "YulIdentifier",
"src": "70772:6:40"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_MessagingReceipt_$28_memory_ptr_fromMemory",
"nativeSrc": "70479:416:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "70558:9:40",
"nodeType": "YulTypedName",
"src": "70558:9:40",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "70569:7:40",
"nodeType": "YulTypedName",
"src": "70569:7:40",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "70581:6:40",
"nodeType": "YulTypedName",
"src": "70581:6:40",
"type": ""
}
],
"src": "70479:416:40"
},
{
"body": {
"nativeSrc": "71055:288:40",
"nodeType": "YulBlock",
"src": "71055:288:40",
"statements": [
{
"nativeSrc": "71065:26:40",
"nodeType": "YulAssignment",
"src": "71065:26:40",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "71077:9:40",
"nodeType": "YulIdentifier",
"src": "71077:9:40"
},
{
"kind": "number",
"nativeSrc": "71088:2:40",
"nodeType": "YulLiteral",
"src": "71088:2:40",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "71073:3:40",
"nodeType": "YulIdentifier",
"src": "71073:3:40"
},
"nativeSrc": "71073:18:40",
"nodeType": "YulFunctionCall",
"src": "71073:18:40"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "71065:4:40",
"nodeType": "YulIdentifier",
"src": "71065:4:40"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "71145:6:40",
"nodeType": "YulIdentifier",
"src": "71145:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "71158:9:40",
"nodeType": "YulIdentifier",
"src": "71158:9:40"
},
{
"kind": "number",
"nativeSrc": "71169:1:40",
"nodeType": "YulLiteral",
"src": "71169:1:40",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "71154:3:40",
"nodeType": "YulIdentifier",
"src": "71154:3:40"
},
"nativeSrc": "71154:17:40",
"nodeType": "YulFunctionCall",
"src": "71154:17:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "71101:43:40",
"nodeType": "YulIdentifier",
"src": "71101:43:40"
},
"nativeSrc": "71101:71:40",
"nodeType": "YulFunctionCall",
"src": "71101:71:40"
},
"nativeSrc": "71101:71:40",
"nodeType": "YulExpressionStatement",
"src": "71101:71:40"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "71226:6:40",
"nodeType": "YulIdentifier",
"src": "71226:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "71239:9:40",
"nodeType": "YulIdentifier",
"src": "71239:9:40"
},
{
"kind": "number",
"nativeSrc": "71250:2:40",
"nodeType": "YulLiteral",
"src": "71250:2:40",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "71235:3:40",
"nodeType": "YulIdentifier",
"src": "71235:3:40"
},
"nativeSrc": "71235:18:40",
"nodeType": "YulFunctionCall",
"src": "71235:18:40"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "71182:43:40",
"nodeType": "YulIdentifier",
"src": "71182:43:40"
},
"nativeSrc": "71182:72:40",
"nodeType": "YulFunctionCall",
"src": "71182:72:40"
},
"nativeSrc": "71182:72:40",
"nodeType": "YulExpressionStatement",
"src": "71182:72:40"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "71308:6:40",
"nodeType": "YulIdentifier",
"src": "71308:6:40"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "71321:9:40",
"nodeType": "YulIdentifier",
"src": "71321:9:40"
},
{
"kind": "number",
"nativeSrc": "71332:2:40",
"nodeType": "YulLiteral",
"src": "71332:2:40",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "71317:3:40",
"nodeType": "YulIdentifier",
"src": "71317:3:40"
},
"nativeSrc": "71317:18:40",
"nodeType": "YulFunctionCall",
"src": "71317:18:40"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "71264:43:40",
"nodeType": "YulIdentifier",
"src": "71264:43:40"
},
"nativeSrc": "71264:72:40",
"nodeType": "YulFunctionCall",
"src": "71264:72:40"
},
"nativeSrc": "71264:72:40",
"nodeType": "YulExpressionStatement",
"src": "71264:72:40"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
"nativeSrc": "70901:442:40",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "71011:9:40",
"nodeType": "YulTypedName",
"src": "71011:9:40",
"type": ""
},
{
"name": "value2",
"nativeSrc": "71023:6:40",
"nodeType": "YulTypedName",
"src": "71023:6:40",
"type": ""
},
{
"name": "value1",
"nativeSrc": "71031:6:40",
"nodeType": "YulTypedName",
"src": "71031:6:40",
"type": ""
},
{
"name": "value0",
"nativeSrc": "71039:6:40",
"nodeType": "YulTypedName",
"src": "71039:6:40",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "71050:4:40",
"nodeType": "YulTypedName",
"src": "71050:4:40",
"type": ""
}
],
"src": "70901:442:40"
}
]
},
"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 let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function 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_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n 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 revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() {\n revert(0, 0)\n }\n\n // struct SendParam\n function abi_decode_t_struct$_SendParam_$3386_calldata_ptr(offset, end) -> value {\n if slt(sub(end, offset), 224) { revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() }\n value := offset\n }\n\n function abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_SendParam_$3386_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct OFTLimit -> struct OFTLimit\n function abi_encode_t_struct$_OFTLimit_$3392_memory_ptr_to_t_struct$_OFTLimit_$3392_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // minAmountLD\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // maxAmountLD\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n }\n\n function array_length_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_int256_to_t_int256(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(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 // struct OFTFeeDetail -> struct OFTFeeDetail\n function abi_encode_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // feeAmountLD\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_int256_to_t_int256(memberValue0, add(pos, 0x00))\n }\n\n {\n // description\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encodeUpdatedPos_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr(value0, pos) -> updatedPos {\n updatedPos := abi_encode_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr(value0, pos)\n }\n\n function array_nextElement_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // struct OFTFeeDetail[] -> struct OFTFeeDetail[]\n function abi_encode_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let headStart := pos\n let tail := add(pos, mul(length, 0x20))\n let baseRef := array_dataslot_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, sub(tail, headStart))\n let elementValue0 := mload(srcPtr)\n tail := abi_encodeUpdatedPos_t_struct$_OFTFeeDetail_$3404_memory_ptr_to_t_struct$_OFTFeeDetail_$3404_memory_ptr(elementValue0, tail)\n srcPtr := array_nextElement_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr(srcPtr)\n pos := add(pos, 0x20)\n }\n pos := tail\n end := pos\n }\n\n // struct OFTReceipt -> struct OFTReceipt\n function abi_encode_t_struct$_OFTReceipt_$3398_memory_ptr_to_t_struct$_OFTReceipt_$3398_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // amountSentLD\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // amountReceivedLD\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_OFTLimit_$3392_memory_ptr_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__to_t_struct$_OFTLimit_$3392_memory_ptr_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_struct$_OFTLimit_$3392_memory_ptr_to_t_struct$_OFTLimit_$3392_memory_ptr_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_OFTFeeDetail_$3404_memory_ptr_$dyn_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_struct$_OFTReceipt_$3398_memory_ptr_to_t_struct$_OFTReceipt_$3398_memory_ptr_fromStack(value2, add(headStart, 96))\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__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 // struct Origin\n function abi_decode_t_struct$_Origin_$40_calldata_ptr(offset, end) -> value {\n if slt(sub(end, offset), 96) { revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() }\n value := offset\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_struct$_Origin_$40_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Origin_$40_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value4 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 192))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value5, value6 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint16(value) -> cleaned {\n cleaned := and(value, 0xffff)\n }\n\n function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint16(value))\n }\n\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint16_to_t_uint16_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value1, add(headStart, 32))\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 cleanup_t_uint32(value) -> cleaned {\n cleaned := and(value, 0xffffffff)\n }\n\n function validator_revert_t_uint32(value) {\n if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint32(value)\n }\n\n function abi_decode_tuple_t_uint32t_bytes32(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_uint32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_SendParam_$3386_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n // struct MessagingFee -> struct MessagingFee\n function abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // nativeFee\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // lzTokenFee\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_MessagingFee_$33_memory_ptr__to_t_struct$_MessagingFee_$33_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint16(value) {\n if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint16(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint16(value)\n }\n\n function abi_decode_tuple_t_uint32t_uint16(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_uint32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_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_bytes_memory_ptr__to_t_bytes_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_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_ILayerZeroEndpointV2_$202_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ILayerZeroEndpointV2_$202_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ILayerZeroEndpointV2_$202_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$202__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ILayerZeroEndpointV2_$202_to_t_address_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_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_struct$_Origin_$40_calldata_ptrt_bytes_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Origin_$40_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n // struct EnforcedOptionParam[]\n function abi_decode_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint32(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_uint32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // struct InboundPacket[]\n function abi_decode_t_array$_t_struct$_InboundPacket_$2486_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2486_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_struct$_InboundPacket_$2486_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // struct MessagingFee\n function abi_decode_t_struct$_MessagingFee_$33_calldata_ptr(offset, end) -> value {\n if slt(sub(end, offset), 64) { revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() }\n value := offset\n }\n\n function abi_decode_tuple_t_struct$_SendParam_$3386_calldata_ptrt_struct$_MessagingFee_$33_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_SendParam_$3386_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_struct$_MessagingFee_$33_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint64_to_t_uint64(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n // struct MessagingFee -> struct MessagingFee\n function abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // nativeFee\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // lzTokenFee\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n }\n\n // struct MessagingReceipt -> struct MessagingReceipt\n function abi_encode_t_struct$_MessagingReceipt_$28_memory_ptr_to_t_struct$_MessagingReceipt_$28_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x80)\n\n {\n // guid\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0x00))\n }\n\n {\n // nonce\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0x20))\n }\n\n {\n // fee\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_struct$_MessagingFee_$33_memory_ptr_to_t_struct$_MessagingFee_$33_memory_ptr(memberValue0, add(pos, 0x40))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_MessagingReceipt_$28_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__to_t_struct$_MessagingReceipt_$28_memory_ptr_t_struct$_OFTReceipt_$3398_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 192)\n\n abi_encode_t_struct$_MessagingReceipt_$28_memory_ptr_to_t_struct$_MessagingReceipt_$28_memory_ptr_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_struct$_OFTReceipt_$3398_memory_ptr_to_t_struct$_OFTReceipt_$3398_memory_ptr_fromStack(value1, add(headStart, 128))\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 abi_decode_tuple_t_struct$_Origin_$40_calldata_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Origin_$40_calldata_ptr(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_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint32(value))\n }\n\n function abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint32_to_t_uint32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct EnforcedOptionParam\n function abi_decode_t_struct$_EnforcedOptionParam_$1932_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // eid\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint32(add(headStart, offset), end))\n\n }\n\n {\n // msgType\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint16(add(headStart, offset), end))\n\n }\n\n {\n // options\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n // struct EnforcedOptionParam[]\n function abi_decode_available_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let innerOffset := calldataload(src)\n if gt(innerOffset, 0xffffffffffffffff) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let elementPos := add(offset, innerOffset)\n\n mstore(dst, abi_decode_t_struct$_EnforcedOptionParam_$1932_memory_ptr(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n function convert_array_t_array$_t_struct$_EnforcedOptionParam_$1932_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(value, length) -> converted {\n\n // Copy the array to a free position in memory\n converted :=\n\n abi_decode_available_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(value, length, calldatasize())\n\n }\n\n function revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a() {\n revert(0, 0)\n }\n\n function revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c() {\n revert(0, 0)\n }\n\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut {\n if gt(startIndex, endIndex) { revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a() }\n if gt(endIndex, length) { revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c() }\n offsetOut := add(offset, mul(startIndex, 1))\n lengthOut := sub(endIndex, startIndex)\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value1, value2, pos)\n\n end := pos\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value0, value1, tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_struct$_InboundPacket_$2486_calldata_ptr(base_ref, ptr_to_tail) -> addr {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x0140, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function calldata_access_t_uint32(baseRef, ptr) -> value {\n value := abi_decode_t_uint32(ptr, add(ptr, 32))\n }\n\n function abi_encode_t_uint32_to_t_uint32(value, pos) {\n mstore(pos, cleanup_t_uint32(value))\n }\n\n function calldata_access_t_bytes32(baseRef, ptr) -> value {\n value := abi_decode_t_bytes32(ptr, add(ptr, 32))\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function calldata_access_t_uint64(baseRef, ptr) -> value {\n value := abi_decode_t_uint64(ptr, add(ptr, 32))\n }\n\n // struct Origin -> struct Origin\n function abi_encode_t_struct$_Origin_$40_calldata_ptr_to_t_struct$_Origin_$40_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x60)\n\n {\n // srcEid\n\n let memberValue0 := calldata_access_t_uint32(value, add(value, 0x00))\n abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x00))\n }\n\n {\n // sender\n\n let memberValue0 := calldata_access_t_bytes32(value, add(value, 0x20))\n abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0x20))\n }\n\n {\n // nonce\n\n let memberValue0 := calldata_access_t_uint64(value, add(value, 0x40))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0x40))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_Origin_$40_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$40_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 224)\n\n abi_encode_t_struct$_Origin_$40_calldata_ptr_to_t_struct$_Origin_$40_memory_ptr_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value2, value3, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value4, add(headStart, 160))\n\n mstore(add(headStart, 192), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value5, value6, tail)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint32_to_t_uint32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint64(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_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_rational_0_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_0_by_1_to_t_uint16(value) -> converted {\n converted := cleanup_t_uint16(identity(cleanup_t_rational_0_by_1(value)))\n }\n\n function abi_encode_t_rational_0_by_1_to_t_uint16_fromStack(value, pos) {\n mstore(pos, convert_t_rational_0_by_1_to_t_uint16(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_rational_0_by_1_to_t_uint16_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint32_to_t_uint32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(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_t_bool_to_t_bool(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n // struct MessagingParams -> struct MessagingParams\n function abi_encode_t_struct$_MessagingParams_$20_memory_ptr_to_t_struct$_MessagingParams_$20_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // dstEid\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x00))\n }\n\n {\n // receiver\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0x20))\n }\n\n {\n // message\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // options\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // payInLzToken\n\n let memberValue0 := mload(add(value, 0x80))\n abi_encode_t_bool_to_t_bool(memberValue0, add(pos, 0x80))\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_MessagingParams_$20_memory_ptr_t_address__to_t_struct$_MessagingParams_$20_memory_ptr_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_MessagingParams_$20_memory_ptr_to_t_struct$_MessagingParams_$20_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n // struct MessagingFee\n function abi_decode_t_struct$_MessagingFee_$33_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // nativeFee\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // lzTokenFee\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_MessagingFee_$33_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_MessagingFee_$33_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_dataslot_t_bytes_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 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_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_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_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_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_bytes_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_bytes_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 array_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint16_to_t_uint16(value, pos) {\n mstore(pos, cleanup_t_uint16(value))\n }\n\n // struct EnforcedOptionParam -> struct EnforcedOptionParam\n function abi_encode_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr(value, pos) -> end {\n let tail := add(pos, 0x60)\n\n {\n // eid\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x00))\n }\n\n {\n // msgType\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x20))\n }\n\n {\n // options\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encodeUpdatedPos_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr(value0, pos) -> updatedPos {\n updatedPos := abi_encode_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr(value0, pos)\n }\n\n function array_nextElement_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // struct EnforcedOptionParam[] -> struct EnforcedOptionParam[]\n function abi_encode_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let headStart := pos\n let tail := add(pos, mul(length, 0x20))\n let baseRef := array_dataslot_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, sub(tail, headStart))\n let elementValue0 := mload(srcPtr)\n tail := abi_encodeUpdatedPos_t_struct$_EnforcedOptionParam_$1932_memory_ptr_to_t_struct$_EnforcedOptionParam_$1932_memory_ptr(elementValue0, tail)\n srcPtr := array_nextElement_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr(srcPtr)\n pos := add(pos, 0x20)\n }\n pos := tail\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1932_memory_ptr_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n // struct MessagingFee\n function abi_decode_t_struct$_MessagingFee_$33_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // nativeFee\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // lzTokenFee\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_MessagingFee_$33_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_MessagingFee_$33_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint32_t_uint256_t_uint256__to_t_uint32_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint32_to_t_uint32_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 panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function array_length_t_bytes_calldata_ptr(value, len) -> length {\n\n length := len\n\n }\n\n function array_dataslot_t_bytes_calldata_ptr(ptr) -> data {\n data := ptr\n\n }\n\n function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32(array, len) -> value {\n\n let length := array_length_t_bytes_calldata_ptr(array, len)\n let dataArea := array\n\n value := cleanup_t_bytes32(calldataload(dataArea))\n\n if lt(length, 32) {\n value := and(\n value,\n shift_left_dynamic(\n mul(8, sub(32, length)),\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n )\n )\n }\n\n }\n\n function cleanup_t_bytes8(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff000000000000000000000000000000000000000000000000)\n }\n\n function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes8(array, len) -> value {\n\n let length := array_length_t_bytes_calldata_ptr(array, len)\n let dataArea := array\n\n value := cleanup_t_bytes8(calldataload(dataArea))\n\n if lt(length, 8) {\n value := and(\n value,\n shift_left_dynamic(\n mul(8, sub(8, length)),\n 0xffffffffffffffff000000000000000000000000000000000000000000000000\n )\n )\n }\n\n }\n\n function shift_left_192(value) -> newValue {\n newValue :=\n\n shl(192, value)\n\n }\n\n function leftAlign_t_uint64(value) -> aligned {\n aligned := shift_left_192(value)\n }\n\n function abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint64(cleanup_t_uint64(value)))\n }\n\n function shift_left_224(value) -> newValue {\n newValue :=\n\n shl(224, value)\n\n }\n\n function leftAlign_t_uint32(value) -> aligned {\n aligned := shift_left_224(value)\n }\n\n function abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint32(cleanup_t_uint32(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_uint64_t_uint32_t_uint256_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value3, value2, value1, value0) -> end {\n\n abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 8)\n\n abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 4)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value3, pos)\n\n end := pos\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 leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_bytes32_t_uint64__to_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 8)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_bytes32_t_uint64_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint64_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value3, value2, value1, value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 8)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value3, pos)\n\n end := pos\n }\n\n function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_t_uint64_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint64(value)\n }\n\n // struct MessagingReceipt\n function abi_decode_t_struct$_MessagingReceipt_$28_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // guid\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_bytes32_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // nonce\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint64_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // fee\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_struct$_MessagingFee_$33_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_MessagingReceipt_$28_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_MessagingReceipt_$28_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_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_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n",
"id": 40,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {
"1386": [
{
"length": 32,
"start": 3213
},
{
"length": 32,
"start": 3950
},
{
"length": 32,
"start": 5647
},
{
"length": 32,
"start": 6745
},
{
"length": 32,
"start": 8022
},
{
"length": 32,
"start": 10841
},
{
"length": 32,
"start": 11435
},
{
"length": 32,
"start": 11683
}
],
"2778": [
{
"length": 32,
"start": 4461
},
{
"length": 32,
"start": 9547
},
{
"length": 32,
"start": 9580
},
{
"length": 32,
"start": 9744
},
{
"length": 32,
"start": 10591
}
]
},
"linkReferences": {},
"object": "608060405260043610610250575f3560e01c80637d25a05e11610138578063bb0b6a53116100b5578063d045a0dc11610079578063d045a0dc146108e7578063d424388514610903578063dd62ed3e1461092b578063f2fde38b14610967578063fc0c546a1461098f578063ff7bd03d146109b957610250565b8063bb0b6a53146107fa578063bc70b35414610836578063bd815db014610872578063c7c7f5b31461088e578063ca5eb5e1146108bf57610250565b8063963efcaa116100fc578063963efcaa146107185780639f68b96414610742578063a9059cbb1461076c578063b731ea0a146107a8578063b98bd070146107d257610250565b80637d25a05e1461062257806382413eac1461065e578063857749b01461069a5780638da5cb5b146106c457806395d89b41146106ee57610250565b806323b872dd116101d15780635535d461116101955780635535d461146105065780635a0dfe4d146105425780635e280f111461057e5780636fc1b31e146105a857806370a08231146105d0578063715018a61461060c57610250565b806323b872dd14610412578063313ce5671461044e5780633400288b146104785780633b6f743b146104a057806352ae2879146104dc57610250565b8063134d4f2511610218578063134d4f251461033e578063156a0d0f1461036857806317442b701461039357806318160ddd146103be5780631f5e1334146103e857610250565b806306fdde0314610254578063095ea7b31461027e5780630d35b415146102ba578063111ecdad146102f857806313137d6514610322575b5f80fd5b34801561025f575f80fd5b506102686109f5565b6040516102759190613028565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f91906130e6565b610a85565b6040516102b1919061313e565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db9190613179565b610aa7565b6040516102ef9392919061337e565b60405180910390f35b348015610303575f80fd5b5061030c610c4f565b60405161031991906133c9565b60405180910390f35b61033c60048036038101906103379190613494565b610c74565b005b348015610349575f80fd5b50610352610d94565b60405161035f9190613567565b60405180910390f35b348015610373575f80fd5b5061037c610d99565b60405161038a9291906135dc565b60405180910390f35b34801561039e575f80fd5b506103a7610dc6565b6040516103b5929190613603565b60405180910390f35b3480156103c9575f80fd5b506103d2610dd4565b6040516103df9190613639565b60405180910390f35b3480156103f3575f80fd5b506103fc610ddd565b6040516104099190613567565b60405180910390f35b34801561041d575f80fd5b5061043860048036038101906104339190613652565b610de2565b604051610445919061313e565b60405180910390f35b348015610459575f80fd5b50610462610e10565b60405161046f91906136bd565b60405180910390f35b348015610483575f80fd5b5061049e6004803603810190610499919061370f565b610e18565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190613777565b610e2e565b6040516104d391906137fe565b60405180910390f35b3480156104e7575f80fd5b506104f0610e96565b6040516104fd91906133c9565b60405180910390f35b348015610511575f80fd5b5061052c60048036038101906105279190613841565b610e9d565b60405161053991906138d1565b60405180910390f35b34801561054d575f80fd5b506105686004803603810190610563919061370f565b610f43565b604051610575919061313e565b60405180910390f35b348015610589575f80fd5b50610592610f6c565b60405161059f919061394c565b60405180910390f35b3480156105b3575f80fd5b506105ce60048036038101906105c99190613965565b610f90565b005b3480156105db575f80fd5b506105f660048036038101906105f19190613965565b611012565b6040516106039190613639565b60405180910390f35b348015610617575f80fd5b50610620611058565b005b34801561062d575f80fd5b506106486004803603810190610643919061370f565b61106b565b6040516106559190613990565b60405180910390f35b348015610669575f80fd5b50610684600480360381019061067f91906139a9565b611072565b604051610691919061313e565b60405180910390f35b3480156106a5575f80fd5b506106ae6110ac565b6040516106bb91906136bd565b60405180910390f35b3480156106cf575f80fd5b506106d86110b4565b6040516106e591906133c9565b60405180910390f35b3480156106f9575f80fd5b506107026110db565b60405161070f9190613028565b60405180910390f35b348015610723575f80fd5b5061072c61116b565b6040516107399190613639565b60405180910390f35b34801561074d575f80fd5b5061075661118f565b604051610763919061313e565b60405180910390f35b348015610777575f80fd5b50610792600480360381019061078d91906130e6565b611193565b60405161079f919061313e565b60405180910390f35b3480156107b3575f80fd5b506107bc6111b5565b6040516107c991906133c9565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613a6f565b6111da565b005b348015610805575f80fd5b50610820600480360381019061081b9190613aba565b6111fb565b60405161082d9190613af4565b60405180910390f35b348015610841575f80fd5b5061085c60048036038101906108579190613b0d565b611210565b60405161086991906138d1565b60405180910390f35b61088c60048036038101906108879190613bd3565b611412565b005b6108a860048036038101906108a39190613c3c565b6115de565b6040516108b6929190613d33565b60405180910390f35b3480156108ca575f80fd5b506108e560048036038101906108e09190613965565b611605565b005b61090160048036038101906108fc9190613494565b611696565b005b34801561090e575f80fd5b5061092960048036038101906109249190613965565b611713565b005b348015610936575f80fd5b50610951600480360381019061094c9190613d5a565b611795565b60405161095e9190613639565b60405180910390f35b348015610972575f80fd5b5061098d60048036038101906109889190613965565b611817565b005b34801561099a575f80fd5b506109a361189b565b6040516109b091906133c9565b60405180910390f35b3480156109c4575f80fd5b506109df60048036038101906109da9190613d98565b6118a2565b6040516109ec919061313e565b60405180910390f35b606060088054610a0490613df0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3090613df0565b8015610a7b5780601f10610a5257610100808354040283529160200191610a7b565b820191905f5260205f20905b815481529060010190602001808311610a5e57829003601f168201915b5050505050905090565b5f80610a8f6118df565b9050610a9c8185856118e6565b600191505092915050565b610aaf612f0b565b6060610ab9612f23565b5f803073ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b289190613e34565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b949190613e73565b905060405180604001604052808381526020018281525094505f67ffffffffffffffff811115610bc757610bc6613e9e565b5b604051908082528060200260200182016040528015610c0057816020015b610bed612f3b565b815260200190600190039081610be55790505b5093505f80610c29886040013589606001358a5f016020810190610c249190613aba565b6118f8565b915091506040518060400160405280838152602001828152509450505050509193909250565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d0457336040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152600401610cfb91906133c9565b60405180910390fd5b8660200135610d23885f016020810190610d1e9190613aba565b611957565b14610d7c57865f016020810190610d3a9190613aba565b87602001356040517fc26bebcc000000000000000000000000000000000000000000000000000000008152600401610d73929190613eda565b60405180910390fd5b610d8b878787878787876119c8565b50505050505050565b600281565b5f807f02e49c2c000000000000000000000000000000000000000000000000000000006001915091509091565b5f8060016002915091509091565b5f600754905090565b600181565b5f80610dec6118df565b9050610df9858285611b52565b610e04858585611be5565b60019150509392505050565b5f6012905090565b610e20611cd5565b610e2a8282611d5c565b5050565b610e36612f54565b5f610e5b84604001358560600135865f016020810190610e569190613aba565b6118f8565b9150505f80610e6a8684611dbb565b91509150610e8b865f016020810190610e839190613aba565b838388611f4c565b935050505092915050565b5f30905090565b6003602052815f5260405f20602052805f5260405f205f91509150508054610ec490613df0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef090613df0565b8015610f3b5780601f10610f1257610100808354040283529160200191610f3b565b820191905f5260205f20905b815481529060010190602001808311610f1e57829003601f168201915b505050505081565b5f8160015f8563ffffffff1663ffffffff1681526020019081526020015f205414905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f98611cd5565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d44141978160405161100791906133c9565b60405180910390a150565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611060611cd5565b6110695f61202d565b565b5f92915050565b5f3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050949350505050565b5f6006905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546110ea90613df0565b80601f016020809104026020016040519081016040528092919081815260200182805461111690613df0565b80156111615780601f1061113857610100808354040283529160200191611161565b820191905f5260205f20905b81548152906001019060200180831161114457829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f90565b5f8061119d6118df565b90506111aa818585611be5565b600191505092915050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e2611cd5565b6111f78282906111f29190614132565b6120ee565b5050565b6001602052805f5260405f205f915090505481565b60605f60035f8763ffffffff1663ffffffff1681526020019081526020015f205f8661ffff1661ffff1681526020019081526020015f20805461125290613df0565b80601f016020809104026020016040519081016040528092919081815260200182805461127e90613df0565b80156112c95780601f106112a0576101008083540402835291602001916112c9565b820191905f5260205f20905b8154815290600101906020018083116112ac57829003601f168201915b505050505090505f8151036113245783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505091505061140a565b5f8484905003611337578091505061140a565b600284849050106113cb5761138e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612203565b80848460029080926113a29392919061414e565b6040516020016113b4939291906141e6565b60405160208183030381529060405291505061140a565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401611401929190614237565b60405180910390fd5b949350505050565b5f5b82829050811015611531573683838381811061143357611432614259565b5b90506020028101906114459190614292565b905061146a815f015f01602081019061145e9190613aba565b825f0160200135610f43565b6114745750611524565b3073ffffffffffffffffffffffffffffffffffffffff1663d045a0dc8260c00135835f018460a00135858061010001906114ae91906142ba565b8760e00160208101906114c19190613965565b888061012001906114d291906142ba565b6040518963ffffffff1660e01b81526004016114f497969594939291906143ef565b5f604051808303818588803b15801561150b575f80fd5b505af115801561151d573d5f803e3d5ffd5b5050505050505b8080600101915050611414565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa15801561157a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906115a291906144c0565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016115d591906138d1565b60405180910390fd5b6115e6612f6c565b6115ee612f23565b6115f985858561225c565b91509150935093915050565b61160d611cd5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ca5eb5e1826040518263ffffffff1660e01b815260040161166691906133c9565b5f604051808303815f87803b15801561167d575f80fd5b505af115801561168f573d5f803e3d5ffd5b5050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116fb576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61170a87878787878787612361565b50505050505050565b61171b611cd5565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277608160405161178a91906133c9565b60405180910390a150565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61181f611cd5565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361188f575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161188691906133c9565b60405180910390fd5b6118988161202d565b50565b5f30905090565b5f816020013560015f845f0160208101906118bd9190613aba565b63ffffffff1663ffffffff1681526020019081526020015f2054149050919050565b5f33905090565b6118f38383836001612379565b505050565b5f8061190385612548565b91508190508381101561194f5780846040517f71c4efed000000000000000000000000000000000000000000000000000000008152600401611946929190614507565b60405180910390fd5b935093915050565b5f8060015f8463ffffffff1663ffffffff1681526020019081526020015f205490505f801b81036119bf57826040517ff6ff4fb70000000000000000000000000000000000000000000000000000000081526004016119b6919061452e565b60405180910390fd5b80915050919050565b5f6119db6119d687876125a7565b6125d1565b90505f611a0b826119f46119ef8a8a6125dc565b61260d565b8b5f016020810190611a069190613aba565b61264b565b9050611a178787612699565b15611ae5575f611a558a6040016020810190611a339190614547565b8b5f016020810190611a459190613aba565b84611a508c8c6126ac565b61270e565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637cb59012848b5f856040518563ffffffff1660e01b8152600401611ab694939291906145ab565b5f604051808303815f87803b158015611acd575f80fd5b505af1158015611adf573d5f803e3d5ffd5b50505050505b8173ffffffffffffffffffffffffffffffffffffffff16887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c8b5f016020810190611b309190613aba565b84604051611b3f9291906145f5565b60405180910390a3505050505050505050565b5f611b5d8484611795565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015611bdf5781811015611bd0578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401611bc79392919061461c565b60405180910390fd5b611bde84848484035f612379565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c55575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611c4c91906133c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611cbc91906133c9565b60405180910390fd5b611cd0838383612740565b505050565b611cdd6118df565b73ffffffffffffffffffffffffffffffffffffffff16611cfb6110b4565b73ffffffffffffffffffffffffffffffffffffffff1614611d5a57611d1e6118df565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611d5191906133c9565b60405180910390fd5b565b8060015f8463ffffffff1663ffffffff1681526020019081526020015f20819055507f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b8282604051611daf929190613eda565b60405180910390a15050565b6060805f611e278560200135611dd08661295c565b878060a00190611de091906142ba565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612990565b80925081945050505f81611e3c576001611e3f565b60025b9050611e6c865f016020810190611e569190613aba565b82888060800190611e6791906142ba565b611210565b92505f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f42578073ffffffffffffffffffffffffffffffffffffffff1663043a78eb86866040518363ffffffff1660e01b8152600401611f01929190614651565b602060405180830381865afa158015611f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f40919061469a565b505b5050509250929050565b611f54612f54565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611fb089611957565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611fe5929190614796565b6040805180830381865afa158015611fff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120239190614811565b9050949350505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5b81518110156121c85761212082828151811061210f5761210e614259565b5b602002602001015160400151612203565b81818151811061213357612132614259565b5b60200260200101516040015160035f84848151811061215557612154614259565b5b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f84848151811061218d5761218c614259565b5b60200260200101516020015161ffff1661ffff1681526020019081526020015f2090816121ba91906149d0565b5080806001019150506120f0565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516121f89190614bb6565b60405180910390a150565b5f60028201519050600361ffff168161ffff161461225857816040517f9a6d49cd00000000000000000000000000000000000000000000000000000000815260040161224f91906138d1565b60405180910390fd5b5050565b612264612f6c565b61226c612f23565b5f8061229333886040013589606001358a5f01602081019061228e9190613aba565b6129fe565b915091505f806122a38984611dbb565b915091506122d5895f0160208101906122bc9190613aba565b83838b8036038101906122cf9190614c23565b8b612a26565b955060405180604001604052808581526020018481525094503373ffffffffffffffffffffffffffffffffffffffff16865f01517f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a8b5f01602081019061233c9190613aba565b878760405161234d93929190614c4e565b60405180910390a350505050935093915050565b612370878787878787876119c8565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123e9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016123e091906133c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612459575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161245091906133c9565b60405180910390fd5b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015612542578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516125399190613639565b60405180910390a35b50505050565b5f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000836125969190614cdd565b6125a09190614d0d565b9050919050565b5f82825f90602060ff16926125be9392919061414e565b906125c99190614d58565b905092915050565b5f815f1c9050919050565b5f8282602060ff1690602860ff16926125f79392919061414e565b906126029190614de1565b60c01c905092915050565b5f7f00000000000000000000000000000000000000000000000000000000000000008267ffffffffffffffff166126449190614d0d565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036126855761dead93505b61268f8484612b3c565b8290509392505050565b5f602860ff168383905011905092915050565b60608282602860ff169080926126c49392919061414e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050905092915050565b6060848484846040516020016127279493929190614ec7565b6040516020818303038152906040529050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612790578060075f8282546127849190614f10565b92505081905550612860565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561281a578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016128119392919061461c565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128a7578060075f82825403925050819055506128f2565b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161294f9190613639565b60405180910390a3505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000826129899190614cdd565b9050919050565b60605f808351119050806129c55784846040516020016129b1929190614f63565b6040516020818303038152906040526129f4565b84846129d033612bbb565b856040516020016129e49493929190614f8e565b6040516020818303038152906040525b9150935093915050565b5f80612a0b8585856118f8565b8092508193505050612a1d8683612bdc565b94509492505050565b612a2e612f6c565b5f612a3b845f0151612c5b565b90505f84602001511115612a5757612a568460200151612ca8565b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff168152602001612ab48c611957565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612aef929190614796565b60806040518083038185885af1158015612b0b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612b309190615060565b91505095945050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612bac575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401612ba391906133c9565b60405180910390fd5b612bb75f8383612740565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff165f1b9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c4c575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401612c4391906133c9565b60405180910390fd5b612c57825f83612740565b5050565b5f813414612ca057346040517f9f704120000000000000000000000000000000000000000000000000000000008152600401612c979190613639565b60405180910390fd5b819050919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d369190613e34565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d9d576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612dea337f0000000000000000000000000000000000000000000000000000000000000000848473ffffffffffffffffffffffffffffffffffffffff16612dee909392919063ffffffff16565b5050565b612e6a848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401612e239392919061508b565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e70565b50505050565b5f8060205f8451602086015f885af180612e8f576040513d5f823e3d81fd5b3d92505f519150505f8214612ea8576001811415612ec3565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b15612f0557836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401612efc91906133c9565b60405180910390fd5b50505050565b60405180604001604052805f81526020015f81525090565b60405180604001604052805f81526020015f81525090565b60405180604001604052805f8152602001606081525090565b60405180604001604052805f81526020015f81525090565b60405180606001604052805f80191681526020015f67ffffffffffffffff168152602001612f98612f54565b81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612fd5578082015181840152602081019050612fba565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ffa82612f9e565b6130048185612fa8565b9350613014818560208601612fb8565b61301d81612fe0565b840191505092915050565b5f6020820190508181035f8301526130408184612ff0565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61308282613059565b9050919050565b61309281613078565b811461309c575f80fd5b50565b5f813590506130ad81613089565b92915050565b5f819050919050565b6130c5816130b3565b81146130cf575f80fd5b50565b5f813590506130e0816130bc565b92915050565b5f80604083850312156130fc576130fb613051565b5b5f6131098582860161309f565b925050602061311a858286016130d2565b9150509250929050565b5f8115159050919050565b61313881613124565b82525050565b5f6020820190506131515f83018461312f565b92915050565b5f80fd5b5f60e082840312156131705761316f613157565b5b81905092915050565b5f6020828403121561318e5761318d613051565b5b5f82013567ffffffffffffffff8111156131ab576131aa613055565b5b6131b78482850161315b565b91505092915050565b6131c9816130b3565b82525050565b604082015f8201516131e35f8501826131c0565b5060208201516131f660208501826131c0565b50505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61323781613225565b82525050565b5f82825260208201905092915050565b5f61325782612f9e565b613261818561323d565b9350613271818560208601612fb8565b61327a81612fe0565b840191505092915050565b5f604083015f83015161329a5f86018261322e565b50602083015184820360208601526132b2828261324d565b9150508091505092915050565b5f6132ca8383613285565b905092915050565b5f602082019050919050565b5f6132e8826131fc565b6132f28185613206565b93508360208202850161330485613216565b805f5b8581101561333f578484038952815161332085826132bf565b945061332b836132d2565b925060208a01995050600181019050613307565b50829750879550505050505092915050565b604082015f8201516133655f8501826131c0565b50602082015161337860208501826131c0565b50505050565b5f60a0820190506133915f8301866131cf565b81810360408301526133a381856132de565b90506133b26060830184613351565b949350505050565b6133c381613078565b82525050565b5f6020820190506133dc5f8301846133ba565b92915050565b5f606082840312156133f7576133f6613157565b5b81905092915050565b5f819050919050565b61341281613400565b811461341c575f80fd5b50565b5f8135905061342d81613409565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261345457613453613433565b5b8235905067ffffffffffffffff81111561347157613470613437565b5b60208301915083600182028301111561348d5761348c61343b565b5b9250929050565b5f805f805f805f60e0888a0312156134af576134ae613051565b5b5f6134bc8a828b016133e2565b97505060606134cd8a828b0161341f565b965050608088013567ffffffffffffffff8111156134ee576134ed613055565b5b6134fa8a828b0161343f565b955095505060a061350d8a828b0161309f565b93505060c088013567ffffffffffffffff81111561352e5761352d613055565b5b61353a8a828b0161343f565b925092505092959891949750929550565b5f61ffff82169050919050565b6135618161354b565b82525050565b5f60208201905061357a5f830184613558565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6135b481613580565b82525050565b5f67ffffffffffffffff82169050919050565b6135d6816135ba565b82525050565b5f6040820190506135ef5f8301856135ab565b6135fc60208301846135cd565b9392505050565b5f6040820190506136165f8301856135cd565b61362360208301846135cd565b9392505050565b613633816130b3565b82525050565b5f60208201905061364c5f83018461362a565b92915050565b5f805f6060848603121561366957613668613051565b5b5f6136768682870161309f565b93505060206136878682870161309f565b9250506040613698868287016130d2565b9150509250925092565b5f60ff82169050919050565b6136b7816136a2565b82525050565b5f6020820190506136d05f8301846136ae565b92915050565b5f63ffffffff82169050919050565b6136ee816136d6565b81146136f8575f80fd5b50565b5f81359050613709816136e5565b92915050565b5f806040838503121561372557613724613051565b5b5f613732858286016136fb565b92505060206137438582860161341f565b9150509250929050565b61375681613124565b8114613760575f80fd5b50565b5f813590506137718161374d565b92915050565b5f806040838503121561378d5761378c613051565b5b5f83013567ffffffffffffffff8111156137aa576137a9613055565b5b6137b68582860161315b565b92505060206137c785828601613763565b9150509250929050565b604082015f8201516137e55f8501826131c0565b5060208201516137f860208501826131c0565b50505050565b5f6040820190506138115f8301846137d1565b92915050565b6138208161354b565b811461382a575f80fd5b50565b5f8135905061383b81613817565b92915050565b5f806040838503121561385757613856613051565b5b5f613864858286016136fb565b92505060206138758582860161382d565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f6138a38261387f565b6138ad8185613889565b93506138bd818560208601612fb8565b6138c681612fe0565b840191505092915050565b5f6020820190508181035f8301526138e98184613899565b905092915050565b5f819050919050565b5f61391461390f61390a84613059565b6138f1565b613059565b9050919050565b5f613925826138fa565b9050919050565b5f6139368261391b565b9050919050565b6139468161392c565b82525050565b5f60208201905061395f5f83018461393d565b92915050565b5f6020828403121561397a57613979613051565b5b5f6139878482850161309f565b91505092915050565b5f6020820190506139a35f8301846135cd565b92915050565b5f805f8060a085870312156139c1576139c0613051565b5b5f6139ce878288016133e2565b945050606085013567ffffffffffffffff8111156139ef576139ee613055565b5b6139fb8782880161343f565b93509350506080613a0e8782880161309f565b91505092959194509250565b5f8083601f840112613a2f57613a2e613433565b5b8235905067ffffffffffffffff811115613a4c57613a4b613437565b5b602083019150836020820283011115613a6857613a6761343b565b5b9250929050565b5f8060208385031215613a8557613a84613051565b5b5f83013567ffffffffffffffff811115613aa257613aa1613055565b5b613aae85828601613a1a565b92509250509250929050565b5f60208284031215613acf57613ace613051565b5b5f613adc848285016136fb565b91505092915050565b613aee81613400565b82525050565b5f602082019050613b075f830184613ae5565b92915050565b5f805f8060608587031215613b2557613b24613051565b5b5f613b32878288016136fb565b9450506020613b438782880161382d565b935050604085013567ffffffffffffffff811115613b6457613b63613055565b5b613b708782880161343f565b925092505092959194509250565b5f8083601f840112613b9357613b92613433565b5b8235905067ffffffffffffffff811115613bb057613baf613437565b5b602083019150836020820283011115613bcc57613bcb61343b565b5b9250929050565b5f8060208385031215613be957613be8613051565b5b5f83013567ffffffffffffffff811115613c0657613c05613055565b5b613c1285828601613b7e565b92509250509250929050565b5f60408284031215613c3357613c32613157565b5b81905092915050565b5f805f60808486031215613c5357613c52613051565b5b5f84013567ffffffffffffffff811115613c7057613c6f613055565b5b613c7c8682870161315b565b9350506020613c8d86828701613c1e565b9250506060613c9e8682870161309f565b9150509250925092565b613cb181613400565b82525050565b613cc0816135ba565b82525050565b604082015f820151613cda5f8501826131c0565b506020820151613ced60208501826131c0565b50505050565b608082015f820151613d075f850182613ca8565b506020820151613d1a6020850182613cb7565b506040820151613d2d6040850182613cc6565b50505050565b5f60c082019050613d465f830185613cf3565b613d536080830184613351565b9392505050565b5f8060408385031215613d7057613d6f613051565b5b5f613d7d8582860161309f565b9250506020613d8e8582860161309f565b9150509250929050565b5f60608284031215613dad57613dac613051565b5b5f613dba848285016133e2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613e0757607f821691505b602082108103613e1a57613e19613dc3565b5b50919050565b5f81519050613e2e81613089565b92915050565b5f60208284031215613e4957613e48613051565b5b5f613e5684828501613e20565b91505092915050565b5f81519050613e6d816130bc565b92915050565b5f60208284031215613e8857613e87613051565b5b5f613e9584828501613e5f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613ed4816136d6565b82525050565b5f604082019050613eed5f830185613ecb565b613efa6020830184613ae5565b9392505050565b613f0a82612fe0565b810181811067ffffffffffffffff82111715613f2957613f28613e9e565b5b80604052505050565b5f613f3b613048565b9050613f478282613f01565b919050565b5f67ffffffffffffffff821115613f6657613f65613e9e565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b5f67ffffffffffffffff821115613f9d57613f9c613e9e565b5b613fa682612fe0565b9050602081019050919050565b828183375f83830152505050565b5f613fd3613fce84613f83565b613f32565b905082815260208101848484011115613fef57613fee613f7f565b5b613ffa848285613fb3565b509392505050565b5f82601f83011261401657614015613433565b5b8135614026848260208601613fc1565b91505092915050565b5f6060828403121561404457614043613f77565b5b61404e6060613f32565b90505f61405d848285016136fb565b5f8301525060206140708482850161382d565b602083015250604082013567ffffffffffffffff81111561409457614093613f7b565b5b6140a084828501614002565b60408301525092915050565b5f6140be6140b984613f4c565b613f32565b905080838252602082019050602084028301858111156140e1576140e061343b565b5b835b8181101561412857803567ffffffffffffffff81111561410657614105613433565b5b808601614113898261402f565b855260208501945050506020810190506140e3565b5050509392505050565b5f61413e3684846140ac565b905092915050565b5f80fd5b5f80fd5b5f808585111561416157614160614146565b5b838611156141725761417161414a565b5b6001850283019150848603905094509492505050565b5f81905092915050565b5f61419c8261387f565b6141a68185614188565b93506141b6818560208601612fb8565b80840191505092915050565b5f6141cd8385614188565b93506141da838584613fb3565b82840190509392505050565b5f6141f18286614192565b91506141fe8284866141c2565b9150819050949350505050565b5f6142168385613889565b9350614223838584613fb3565b61422c83612fe0565b840190509392505050565b5f6020820190508181035f83015261425081848661420b565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f80fd5b5f80fd5b5f80fd5b5f82356001610140038336030381126142ae576142ad614286565b5b80830191505092915050565b5f80833560016020038436030381126142d6576142d5614286565b5b80840192508235915067ffffffffffffffff8211156142f8576142f761428a565b5b6020830192506001820236038313156143145761431361428e565b5b509250929050565b5f61432a60208401846136fb565b905092915050565b61433b816136d6565b82525050565b5f61434f602084018461341f565b905092915050565b614360816135ba565b811461436a575f80fd5b50565b5f8135905061437b81614357565b92915050565b5f61438f602084018461436d565b905092915050565b606082016143a75f83018361431c565b6143b35f850182614332565b506143c16020830183614341565b6143ce6020850182613ca8565b506143dc6040830183614381565b6143e96040850182613cb7565b50505050565b5f60e0820190506144025f83018a614397565b61440f6060830189613ae5565b818103608083015261442281878961420b565b905061443160a08301866133ba565b81810360c083015261444481848661420b565b905098975050505050505050565b5f61446461445f84613f83565b613f32565b9050828152602081018484840111156144805761447f613f7f565b5b61448b848285612fb8565b509392505050565b5f82601f8301126144a7576144a6613433565b5b81516144b7848260208601614452565b91505092915050565b5f602082840312156144d5576144d4613051565b5b5f82015167ffffffffffffffff8111156144f2576144f1613055565b5b6144fe84828501614493565b91505092915050565b5f60408201905061451a5f83018561362a565b614527602083018461362a565b9392505050565b5f6020820190506145415f830184613ecb565b92915050565b5f6020828403121561455c5761455b613051565b5b5f6145698482850161436d565b91505092915050565b5f819050919050565b5f61459561459061458b84614572565b6138f1565b61354b565b9050919050565b6145a58161457b565b82525050565b5f6080820190506145be5f8301876133ba565b6145cb6020830186613ae5565b6145d8604083018561459c565b81810360608301526145ea8184613899565b905095945050505050565b5f6040820190506146085f830185613ecb565b614615602083018461362a565b9392505050565b5f60608201905061462f5f8301866133ba565b61463c602083018561362a565b614649604083018461362a565b949350505050565b5f6040820190508181035f8301526146698185613899565b9050818103602083015261467d8184613899565b90509392505050565b5f815190506146948161374d565b92915050565b5f602082840312156146af576146ae613051565b5b5f6146bc84828501614686565b91505092915050565b5f82825260208201905092915050565b5f6146df8261387f565b6146e981856146c5565b93506146f9818560208601612fb8565b61470281612fe0565b840191505092915050565b61471681613124565b82525050565b5f60a083015f8301516147315f860182614332565b5060208301516147446020860182613ca8565b506040830151848203604086015261475c82826146d5565b9150506060830151848203606086015261477682826146d5565b915050608083015161478b608086018261470d565b508091505092915050565b5f6040820190508181035f8301526147ae818561471c565b90506147bd60208301846133ba565b9392505050565b5f604082840312156147d9576147d8613f77565b5b6147e36040613f32565b90505f6147f284828501613e5f565b5f83015250602061480584828501613e5f565b60208301525092915050565b5f6040828403121561482657614825613051565b5b5f614833848285016147c4565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026148987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261485d565b6148a2868361485d565b95508019841693508086168417925050509392505050565b5f6148d46148cf6148ca846130b3565b6138f1565b6130b3565b9050919050565b5f819050919050565b6148ed836148ba565b6149016148f9826148db565b848454614869565b825550505050565b5f90565b614915614909565b6149208184846148e4565b505050565b5b81811015614943576149385f8261490d565b600181019050614926565b5050565b601f821115614988576149598161483c565b6149628461484e565b81016020851015614971578190505b61498561497d8561484e565b830182614925565b50505b505050565b5f82821c905092915050565b5f6149a85f198460080261498d565b1980831691505092915050565b5f6149c08383614999565b9150826002028217905092915050565b6149d98261387f565b67ffffffffffffffff8111156149f2576149f1613e9e565b5b6149fc8254613df0565b614a07828285614947565b5f60209050601f831160018114614a38575f8415614a26578287015190505b614a3085826149b5565b865550614a97565b601f198416614a468661483c565b5f5b82811015614a6d57848901518255600182019150602085019450602081019050614a48565b86831015614a8a5784890151614a86601f891682614999565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614ad18161354b565b82525050565b5f606083015f830151614aec5f860182614332565b506020830151614aff6020860182614ac8565b5060408301518482036040860152614b1782826146d5565b9150508091505092915050565b5f614b2f8383614ad7565b905092915050565b5f602082019050919050565b5f614b4d82614a9f565b614b578185614aa9565b935083602082028501614b6985614ab9565b805f5b85811015614ba45784840389528151614b858582614b24565b9450614b9083614b37565b925060208a01995050600181019050614b6c565b50829750879550505050505092915050565b5f6020820190508181035f830152614bce8184614b43565b905092915050565b5f60408284031215614beb57614bea613f77565b5b614bf56040613f32565b90505f614c04848285016130d2565b5f830152506020614c17848285016130d2565b60208301525092915050565b5f60408284031215614c3857614c37613051565b5b5f614c4584828501614bd6565b91505092915050565b5f606082019050614c615f830186613ecb565b614c6e602083018561362a565b614c7b604083018461362a565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614ce7826130b3565b9150614cf2836130b3565b925082614d0257614d01614c83565b5b828204905092915050565b5f614d17826130b3565b9150614d22836130b3565b9250828202614d30816130b3565b91508282048414831517614d4757614d46614cb0565b5b5092915050565b5f82905092915050565b5f614d638383614d4e565b82614d6e8135613400565b92506020821015614dae57614da97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261485d565b831692505b505092915050565b5f7fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b5f614dec8383614d4e565b82614df78135614db6565b92506008821015614e3757614e327fffffffffffffffff0000000000000000000000000000000000000000000000008360080360080261485d565b831692505b505092915050565b5f8160c01b9050919050565b5f614e5582614e3f565b9050919050565b614e6d614e68826135ba565b614e4b565b82525050565b5f8160e01b9050919050565b5f614e8982614e73565b9050919050565b614ea1614e9c826136d6565b614e7f565b82525050565b5f819050919050565b614ec1614ebc826130b3565b614ea7565b82525050565b5f614ed28287614e5c565b600882019150614ee28286614e90565b600482019150614ef28285614eb0565b602082019150614f028284614192565b915081905095945050505050565b5f614f1a826130b3565b9150614f25836130b3565b9250828201905080821115614f3d57614f3c614cb0565b5b92915050565b5f819050919050565b614f5d614f5882613400565b614f43565b82525050565b5f614f6e8285614f4c565b602082019150614f7e8284614e5c565b6008820191508190509392505050565b5f614f998287614f4c565b602082019150614fa98286614e5c565b600882019150614fb98285614f4c565b602082019150614fc98284614192565b915081905095945050505050565b5f81519050614fe581613409565b92915050565b5f81519050614ff981614357565b92915050565b5f6080828403121561501457615013613f77565b5b61501e6060613f32565b90505f61502d84828501614fd7565b5f83015250602061504084828501614feb565b6020830152506040615054848285016147c4565b60408301525092915050565b5f6080828403121561507557615074613051565b5b5f61508284828501614fff565b91505092915050565b5f60608201905061509e5f8301866133ba565b6150ab60208301856133ba565b6150b8604083018461362a565b94935050505056fea2646970667358221220832b90eba63331b2acb40d8e35786ec952268846213c4537dc6b1465d8dd4f2764736f6c63430008180033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x250 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D25A05E GT PUSH2 0x138 JUMPI DUP1 PUSH4 0xBB0B6A53 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xD045A0DC GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xD045A0DC EQ PUSH2 0x8E7 JUMPI DUP1 PUSH4 0xD4243885 EQ PUSH2 0x903 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x92B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x967 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x98F JUMPI DUP1 PUSH4 0xFF7BD03D EQ PUSH2 0x9B9 JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x7FA JUMPI DUP1 PUSH4 0xBC70B354 EQ PUSH2 0x836 JUMPI DUP1 PUSH4 0xBD815DB0 EQ PUSH2 0x872 JUMPI DUP1 PUSH4 0xC7C7F5B3 EQ PUSH2 0x88E JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x8BF JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x963EFCAA GT PUSH2 0xFC JUMPI DUP1 PUSH4 0x963EFCAA EQ PUSH2 0x718 JUMPI DUP1 PUSH4 0x9F68B964 EQ PUSH2 0x742 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x76C JUMPI DUP1 PUSH4 0xB731EA0A EQ PUSH2 0x7A8 JUMPI DUP1 PUSH4 0xB98BD070 EQ PUSH2 0x7D2 JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x7D25A05E EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x82413EAC EQ PUSH2 0x65E JUMPI DUP1 PUSH4 0x857749B0 EQ PUSH2 0x69A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6C4 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x6EE JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x5535D461 GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x5535D461 EQ PUSH2 0x506 JUMPI DUP1 PUSH4 0x5A0DFE4D EQ PUSH2 0x542 JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x57E JUMPI DUP1 PUSH4 0x6FC1B31E EQ PUSH2 0x5A8 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x60C JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0x3400288B EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x3B6F743B EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x52AE2879 EQ PUSH2 0x4DC JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x134D4F25 GT PUSH2 0x218 JUMPI DUP1 PUSH4 0x134D4F25 EQ PUSH2 0x33E JUMPI DUP1 PUSH4 0x156A0D0F EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x393 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x1F5E1334 EQ PUSH2 0x3E8 JUMPI PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x27E JUMPI DUP1 PUSH4 0xD35B415 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x111ECDAD EQ PUSH2 0x2F8 JUMPI DUP1 PUSH4 0x13137D65 EQ PUSH2 0x322 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x3028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x30E6 JUMP JUMPDEST PUSH2 0xA85 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DB SWAP2 SWAP1 PUSH2 0x3179 JUMP JUMPDEST PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x337E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x3494 JUMP JUMPDEST PUSH2 0xC74 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x349 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x352 PUSH2 0xD94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35F SWAP2 SWAP1 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH2 0xD99 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38A SWAP3 SWAP2 SWAP1 PUSH2 0x35DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A7 PUSH2 0xDC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B5 SWAP3 SWAP2 SWAP1 PUSH2 0x3603 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D2 PUSH2 0xDD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DF SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FC PUSH2 0xDDD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x409 SWAP2 SWAP1 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x438 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x433 SWAP2 SWAP1 PUSH2 0x3652 JUMP JUMPDEST PUSH2 0xDE2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x445 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x462 PUSH2 0xE10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x46F SWAP2 SWAP1 PUSH2 0x36BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x483 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x370F JUMP JUMPDEST PUSH2 0xE18 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x3777 JUMP JUMPDEST PUSH2 0xE2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4D3 SWAP2 SWAP1 PUSH2 0x37FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F0 PUSH2 0xE96 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4FD SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x511 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x52C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x527 SWAP2 SWAP1 PUSH2 0x3841 JUMP JUMPDEST PUSH2 0xE9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x539 SWAP2 SWAP1 PUSH2 0x38D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x568 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x563 SWAP2 SWAP1 PUSH2 0x370F JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x575 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x589 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x592 PUSH2 0xF6C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C9 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0xF90 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5F1 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x603 SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x617 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x620 PUSH2 0x1058 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x648 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x643 SWAP2 SWAP1 PUSH2 0x370F JUMP JUMPDEST PUSH2 0x106B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x655 SWAP2 SWAP1 PUSH2 0x3990 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x669 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x684 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x67F SWAP2 SWAP1 PUSH2 0x39A9 JUMP JUMPDEST PUSH2 0x1072 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x691 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x6AE PUSH2 0x10AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0x36BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D8 PUSH2 0x10B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E5 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x702 PUSH2 0x10DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x70F SWAP2 SWAP1 PUSH2 0x3028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x723 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x72C PUSH2 0x116B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x739 SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x756 PUSH2 0x118F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x763 SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x777 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x792 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x78D SWAP2 SWAP1 PUSH2 0x30E6 JUMP JUMPDEST PUSH2 0x1193 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79F SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x7BC PUSH2 0x11B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C9 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x7F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7F3 SWAP2 SWAP1 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x11DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x805 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x820 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x81B SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x11FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x3AF4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x841 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x85C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x857 SWAP2 SWAP1 PUSH2 0x3B0D JUMP JUMPDEST PUSH2 0x1210 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x869 SWAP2 SWAP1 PUSH2 0x38D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x88C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x887 SWAP2 SWAP1 PUSH2 0x3BD3 JUMP JUMPDEST PUSH2 0x1412 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x8A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8A3 SWAP2 SWAP1 PUSH2 0x3C3C JUMP JUMPDEST PUSH2 0x15DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8B6 SWAP3 SWAP2 SWAP1 PUSH2 0x3D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x8E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8E0 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0x1605 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x901 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8FC SWAP2 SWAP1 PUSH2 0x3494 JUMP JUMPDEST PUSH2 0x1696 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x929 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x924 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0x1713 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x936 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x951 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x94C SWAP2 SWAP1 PUSH2 0x3D5A JUMP JUMPDEST PUSH2 0x1795 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95E SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x972 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x98D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x988 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST PUSH2 0x1817 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9A3 PUSH2 0x189B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9B0 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9DA SWAP2 SWAP1 PUSH2 0x3D98 JUMP JUMPDEST PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9EC SWAP2 SWAP1 PUSH2 0x313E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x8 DUP1 SLOAD PUSH2 0xA04 SWAP1 PUSH2 0x3DF0 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 0xA30 SWAP1 PUSH2 0x3DF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA7B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA52 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA7B 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 0xA5E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xA8F PUSH2 0x18DF JUMP JUMPDEST SWAP1 POP PUSH2 0xA9C DUP2 DUP6 DUP6 PUSH2 0x18E6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAAF PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB9 PUSH2 0x2F23 JUMP JUMPDEST PUSH0 DUP1 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB04 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB28 SWAP2 SWAP1 PUSH2 0x3E34 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB70 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB94 SWAP2 SWAP1 PUSH2 0x3E73 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP SWAP5 POP PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBC7 JUMPI PUSH2 0xBC6 PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xC00 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBED PUSH2 0x2F3B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBE5 JUMPI SWAP1 POP JUMPDEST POP SWAP4 POP PUSH0 DUP1 PUSH2 0xC29 DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP10 PUSH1 0x60 ADD CALLDATALOAD DUP11 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC24 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x18F8 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP SWAP5 POP POP POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD04 JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0x91AC5E4F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCFB SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xD23 DUP9 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD1E SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x1957 JUMP JUMPDEST EQ PUSH2 0xD7C JUMPI DUP7 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD3A SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP8 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x40 MLOAD PUSH32 0xC26BEBCC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP3 SWAP2 SWAP1 PUSH2 0x3EDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD8B DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x19C8 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x2E49C2C00000000000000000000000000000000000000000000000000000000 PUSH1 0x1 SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH1 0x2 SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH0 PUSH1 0x7 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xDEC PUSH2 0x18DF JUMP JUMPDEST SWAP1 POP PUSH2 0xDF9 DUP6 DUP3 DUP6 PUSH2 0x1B52 JUMP JUMPDEST PUSH2 0xE04 DUP6 DUP6 DUP6 PUSH2 0x1BE5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE20 PUSH2 0x1CD5 JUMP JUMPDEST PUSH2 0xE2A DUP3 DUP3 PUSH2 0x1D5C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE36 PUSH2 0x2F54 JUMP JUMPDEST PUSH0 PUSH2 0xE5B DUP5 PUSH1 0x40 ADD CALLDATALOAD DUP6 PUSH1 0x60 ADD CALLDATALOAD DUP7 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE56 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x18F8 JUMP JUMPDEST SWAP2 POP POP PUSH0 DUP1 PUSH2 0xE6A DUP7 DUP5 PUSH2 0x1DBB JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xE8B DUP7 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE83 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP4 DUP4 DUP9 PUSH2 0x1F4C JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 ADDRESS SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP2 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP2 POP POP DUP1 SLOAD PUSH2 0xEC4 SWAP1 PUSH2 0x3DF0 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 0xEF0 SWAP1 PUSH2 0x3DF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF3B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF12 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF3B 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 0xF1E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH0 DUP6 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0xF98 PUSH2 0x1CD5 JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xF0BE4F1E87349231D80C36B33F9E8639658EEAF474014DEE15A3E6A4D4414197 DUP2 PUSH1 0x40 MLOAD PUSH2 0x1007 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 PUSH1 0x5 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 PUSH2 0x1060 PUSH2 0x1CD5 JUMP JUMPDEST PUSH2 0x1069 PUSH0 PUSH2 0x202D JUMP JUMPDEST JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x6 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x9 DUP1 SLOAD PUSH2 0x10EA SWAP1 PUSH2 0x3DF0 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 0x1116 SWAP1 PUSH2 0x3DF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1161 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1138 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1161 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 0x1144 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x119D PUSH2 0x18DF JUMP JUMPDEST SWAP1 POP PUSH2 0x11AA DUP2 DUP6 DUP6 PUSH2 0x1BE5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x11E2 PUSH2 0x1CD5 JUMP JUMPDEST PUSH2 0x11F7 DUP3 DUP3 SWAP1 PUSH2 0x11F2 SWAP2 SWAP1 PUSH2 0x4132 JUMP JUMPDEST PUSH2 0x20EE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH1 0x3 PUSH0 DUP8 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP7 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP1 SLOAD PUSH2 0x1252 SWAP1 PUSH2 0x3DF0 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 0x127E SWAP1 PUSH2 0x3DF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x12A0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x12C9 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 0x12AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH0 DUP2 MLOAD SUB PUSH2 0x1324 JUMPI DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 POP POP PUSH2 0x140A JUMP JUMPDEST PUSH0 DUP5 DUP5 SWAP1 POP SUB PUSH2 0x1337 JUMPI DUP1 SWAP2 POP POP PUSH2 0x140A JUMP JUMPDEST PUSH1 0x2 DUP5 DUP5 SWAP1 POP LT PUSH2 0x13CB JUMPI PUSH2 0x138E DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x2203 JUMP JUMPDEST DUP1 DUP5 DUP5 PUSH1 0x2 SWAP1 DUP1 SWAP3 PUSH2 0x13A2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x414E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x13B4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x41E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP PUSH2 0x140A JUMP JUMPDEST DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x9A6D49CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1401 SWAP3 SWAP2 SWAP1 PUSH2 0x4237 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP3 SWAP1 POP DUP2 LT ISZERO PUSH2 0x1531 JUMPI CALLDATASIZE DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x1433 JUMPI PUSH2 0x1432 PUSH2 0x4259 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1445 SWAP2 SWAP1 PUSH2 0x4292 JUMP JUMPDEST SWAP1 POP PUSH2 0x146A DUP2 PUSH0 ADD PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x145E SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP3 PUSH0 ADD PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x1474 JUMPI POP PUSH2 0x1524 JUMP JUMPDEST ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD045A0DC DUP3 PUSH1 0xC0 ADD CALLDATALOAD DUP4 PUSH0 ADD DUP5 PUSH1 0xA0 ADD CALLDATALOAD DUP6 DUP1 PUSH2 0x100 ADD SWAP1 PUSH2 0x14AE SWAP2 SWAP1 PUSH2 0x42BA JUMP JUMPDEST DUP8 PUSH1 0xE0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x14C1 SWAP2 SWAP1 PUSH2 0x3965 JUMP JUMPDEST DUP9 DUP1 PUSH2 0x120 ADD SWAP1 PUSH2 0x14D2 SWAP2 SWAP1 PUSH2 0x42BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP10 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14F4 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43EF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x150B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x151D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1414 JUMP JUMPDEST POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x8E9E7099 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x157A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A2 SWAP2 SWAP1 PUSH2 0x44C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8351EEA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15D5 SWAP2 SWAP1 PUSH2 0x38D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15E6 PUSH2 0x2F6C JUMP JUMPDEST PUSH2 0x15EE PUSH2 0x2F23 JUMP JUMPDEST PUSH2 0x15F9 DUP6 DUP6 DUP6 PUSH2 0x225C JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x160D PUSH2 0x1CD5 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCA5EB5E1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1666 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x167D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x168F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x14D4A4E800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x170A DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2361 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x171B PUSH2 0x1CD5 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xD48D879CEF83A1C0BDDA516F27B13DDB1B3F8BBAC1C9E1511BB2A659C2427760 DUP2 PUSH1 0x40 MLOAD PUSH2 0x178A SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 PUSH1 0x6 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 PUSH2 0x181F PUSH2 0x1CD5 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x188F JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1886 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1898 DUP2 PUSH2 0x202D JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 ADDRESS SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH0 DUP5 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x18BD SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x18F3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2379 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x1903 DUP6 PUSH2 0x2548 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x194F JUMPI DUP1 DUP5 PUSH1 0x40 MLOAD PUSH32 0x71C4EFED00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1946 SWAP3 SWAP2 SWAP1 PUSH2 0x4507 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 DUP5 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x19BF JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xF6FF4FB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19B6 SWAP2 SWAP1 PUSH2 0x452E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19DB PUSH2 0x19D6 DUP8 DUP8 PUSH2 0x25A7 JUMP JUMPDEST PUSH2 0x25D1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1A0B DUP3 PUSH2 0x19F4 PUSH2 0x19EF DUP11 DUP11 PUSH2 0x25DC JUMP JUMPDEST PUSH2 0x260D JUMP JUMPDEST DUP12 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1A06 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x264B JUMP JUMPDEST SWAP1 POP PUSH2 0x1A17 DUP8 DUP8 PUSH2 0x2699 JUMP JUMPDEST ISZERO PUSH2 0x1AE5 JUMPI PUSH0 PUSH2 0x1A55 DUP11 PUSH1 0x40 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1A33 SWAP2 SWAP1 PUSH2 0x4547 JUMP JUMPDEST DUP12 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1A45 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP5 PUSH2 0x1A50 DUP13 DUP13 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0x270E JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x7CB59012 DUP5 DUP12 PUSH0 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AB6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x45AB JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ACD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH32 0xEFED6D3500546B29533B128A29E3A94D70788727F0507505AC12EAF2E578FD9C DUP12 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1B30 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP5 PUSH1 0x40 MLOAD PUSH2 0x1B3F SWAP3 SWAP2 SWAP1 PUSH2 0x45F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B5D DUP5 DUP5 PUSH2 0x1795 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x1BDF JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1BD0 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BC7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x461C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BDE DUP5 DUP5 DUP5 DUP5 SUB PUSH0 PUSH2 0x2379 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1C55 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C4C SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CC5 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBC SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1CD0 DUP4 DUP4 DUP4 PUSH2 0x2740 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1CDD PUSH2 0x18DF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CFB PUSH2 0x10B4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1D5A JUMPI PUSH2 0x1D1E PUSH2 0x18DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D51 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP5 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1DAF SWAP3 SWAP2 SWAP1 PUSH2 0x3EDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH0 PUSH2 0x1E27 DUP6 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1DD0 DUP7 PUSH2 0x295C JUMP JUMPDEST DUP8 DUP1 PUSH1 0xA0 ADD SWAP1 PUSH2 0x1DE0 SWAP2 SWAP1 PUSH2 0x42BA JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x2990 JUMP JUMPDEST DUP1 SWAP3 POP DUP2 SWAP5 POP POP POP PUSH0 DUP2 PUSH2 0x1E3C JUMPI PUSH1 0x1 PUSH2 0x1E3F JUMP JUMPDEST PUSH1 0x2 JUMPDEST SWAP1 POP PUSH2 0x1E6C DUP7 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1E56 SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP3 DUP9 DUP1 PUSH1 0x80 ADD SWAP1 PUSH2 0x1E67 SWAP2 SWAP1 PUSH2 0x42BA JUMP JUMPDEST PUSH2 0x1210 JUMP JUMPDEST SWAP3 POP PUSH0 PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F42 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x43A78EB DUP7 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F01 SWAP3 SWAP2 SWAP1 PUSH2 0x4651 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F40 SWAP2 SWAP1 PUSH2 0x469A JUMP JUMPDEST POP JUMPDEST POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F54 PUSH2 0x2F54 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDDC28C58 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FB0 DUP10 PUSH2 0x1957 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE5 SWAP3 SWAP2 SWAP1 PUSH2 0x4796 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FFF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2023 SWAP2 SWAP1 PUSH2 0x4811 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x21C8 JUMPI PUSH2 0x2120 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x210F JUMPI PUSH2 0x210E PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH2 0x2203 JUMP JUMPDEST DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x2133 JUMPI PUSH2 0x2132 PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x3 PUSH0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x2155 JUMPI PUSH2 0x2154 PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x218D JUMPI PUSH2 0x218C PUSH2 0x4259 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SWAP1 DUP2 PUSH2 0x21BA SWAP2 SWAP1 PUSH2 0x49D0 JUMP JUMPDEST POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x20F0 JUMP JUMPDEST POP PUSH32 0xBE4864A8E820971C0247F5992E2DA559595F7BF076A21CB5928D443D2A13B674 DUP2 PUSH1 0x40 MLOAD PUSH2 0x21F8 SWAP2 SWAP1 PUSH2 0x4BB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP3 ADD MLOAD SWAP1 POP PUSH1 0x3 PUSH2 0xFFFF AND DUP2 PUSH2 0xFFFF AND EQ PUSH2 0x2258 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x9A6D49CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x224F SWAP2 SWAP1 PUSH2 0x38D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2264 PUSH2 0x2F6C JUMP JUMPDEST PUSH2 0x226C PUSH2 0x2F23 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x2293 CALLER DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP10 PUSH1 0x60 ADD CALLDATALOAD DUP11 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x228E SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x29FE JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP1 PUSH2 0x22A3 DUP10 DUP5 PUSH2 0x1DBB JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x22D5 DUP10 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x22BC SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP4 DUP4 DUP12 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22CF SWAP2 SWAP1 PUSH2 0x4C23 JUMP JUMPDEST DUP12 PUSH2 0x2A26 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP5 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH0 ADD MLOAD PUSH32 0x85496B760A4B7F8D66384B9DF21B381F5D1B1E79F229A47AAF4C232EDC2FE59A DUP12 PUSH0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x233C SWAP2 SWAP1 PUSH2 0x3ABA JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x234D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2370 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x19C8 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x23E9 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23E0 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2459 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2450 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x6 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 0x2542 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2539 SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH32 0x0 DUP4 PUSH2 0x2596 SWAP2 SWAP1 PUSH2 0x4CDD JUMP JUMPDEST PUSH2 0x25A0 SWAP2 SWAP1 PUSH2 0x4D0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH0 SWAP1 PUSH1 0x20 PUSH1 0xFF AND SWAP3 PUSH2 0x25BE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x414E JUMP JUMPDEST SWAP1 PUSH2 0x25C9 SWAP2 SWAP1 PUSH2 0x4D58 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH1 0x20 PUSH1 0xFF AND SWAP1 PUSH1 0x28 PUSH1 0xFF AND SWAP3 PUSH2 0x25F7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x414E JUMP JUMPDEST SWAP1 PUSH2 0x2602 SWAP2 SWAP1 PUSH2 0x4DE1 JUMP JUMPDEST PUSH1 0xC0 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x2644 SWAP2 SWAP1 PUSH2 0x4D0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2685 JUMPI PUSH2 0xDEAD SWAP4 POP JUMPDEST PUSH2 0x268F DUP5 DUP5 PUSH2 0x2B3C JUMP JUMPDEST DUP3 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x28 PUSH1 0xFF AND DUP4 DUP4 SWAP1 POP GT SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH1 0x28 PUSH1 0xFF AND SWAP1 DUP1 SWAP3 PUSH2 0x26C4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x414E JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2727 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4EC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2790 JUMPI DUP1 PUSH1 0x7 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2784 SWAP2 SWAP1 PUSH2 0x4F10 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x2860 JUMP JUMPDEST PUSH0 PUSH1 0x5 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 0x281A JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2811 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x461C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x5 PUSH0 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 0x28A7 JUMPI DUP1 PUSH1 0x7 PUSH0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x28F2 JUMP JUMPDEST DUP1 PUSH1 0x5 PUSH0 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 0x294F SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 DUP3 PUSH2 0x2989 SWAP2 SWAP1 PUSH2 0x4CDD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP1 DUP4 MLOAD GT SWAP1 POP DUP1 PUSH2 0x29C5 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x29B1 SWAP3 SWAP2 SWAP1 PUSH2 0x4F63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x29F4 JUMP JUMPDEST DUP5 DUP5 PUSH2 0x29D0 CALLER PUSH2 0x2BBB JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x29E4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4F8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x2A0B DUP6 DUP6 DUP6 PUSH2 0x18F8 JUMP JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH2 0x2A1D DUP7 DUP4 PUSH2 0x2BDC JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2A2E PUSH2 0x2F6C JUMP JUMPDEST PUSH0 PUSH2 0x2A3B DUP5 PUSH0 ADD MLOAD PUSH2 0x2C5B JUMP JUMPDEST SWAP1 POP PUSH0 DUP5 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x2A57 JUMPI PUSH2 0x2A56 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2CA8 JUMP JUMPDEST JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2637A450 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP12 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2AB4 DUP13 PUSH2 0x1957 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP10 PUSH1 0x20 ADD MLOAD GT ISZERO ISZERO DUP2 MSTORE POP DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AEF SWAP3 SWAP2 SWAP1 PUSH2 0x4796 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B0B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B30 SWAP2 SWAP1 PUSH2 0x5060 JUMP JUMPDEST SWAP2 POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2BAC JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BA3 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2BB7 PUSH0 DUP4 DUP4 PUSH2 0x2740 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2C4C JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C43 SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C57 DUP3 PUSH0 DUP4 PUSH2 0x2740 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 CALLVALUE EQ PUSH2 0x2CA0 JUMPI CALLVALUE PUSH1 0x40 MLOAD PUSH32 0x9F70412000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C97 SWAP2 SWAP1 PUSH2 0x3639 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE4FE1D94 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D12 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D36 SWAP2 SWAP1 PUSH2 0x3E34 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2D9D JUMPI PUSH1 0x40 MLOAD PUSH32 0x5373352A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2DEA CALLER PUSH32 0x0 DUP5 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2DEE SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2E6A DUP5 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2E23 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x508B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2E70 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 PUSH0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH0 DUP9 GAS CALL DUP1 PUSH2 0x2E8F JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST RETURNDATASIZE SWAP3 POP PUSH0 MLOAD SWAP2 POP POP PUSH0 DUP3 EQ PUSH2 0x2EA8 JUMPI PUSH1 0x1 DUP2 EQ ISZERO PUSH2 0x2EC3 JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x2F05 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x5274AFE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EFC SWAP2 SWAP1 PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2F98 PUSH2 0x2F54 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 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 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2FBA JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2FFA DUP3 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x3004 DUP2 DUP6 PUSH2 0x2FA8 JUMP JUMPDEST SWAP4 POP PUSH2 0x3014 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST PUSH2 0x301D DUP2 PUSH2 0x2FE0 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 0x3040 DUP2 DUP5 PUSH2 0x2FF0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3082 DUP3 PUSH2 0x3059 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3092 DUP2 PUSH2 0x3078 JUMP JUMPDEST DUP2 EQ PUSH2 0x309C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x30AD DUP2 PUSH2 0x3089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x30C5 DUP2 PUSH2 0x30B3 JUMP JUMPDEST DUP2 EQ PUSH2 0x30CF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x30E0 DUP2 PUSH2 0x30BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x30FC JUMPI PUSH2 0x30FB PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3109 DUP6 DUP3 DUP7 ADD PUSH2 0x309F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x311A DUP6 DUP3 DUP7 ADD PUSH2 0x30D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3138 DUP2 PUSH2 0x3124 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3151 PUSH0 DUP4 ADD DUP5 PUSH2 0x312F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0xE0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3170 JUMPI PUSH2 0x316F PUSH2 0x3157 JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x318E JUMPI PUSH2 0x318D PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x31AB JUMPI PUSH2 0x31AA PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x31B7 DUP5 DUP3 DUP6 ADD PUSH2 0x315B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x31C9 DUP2 PUSH2 0x30B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x31E3 PUSH0 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x31F6 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP 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 PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3237 DUP2 PUSH2 0x3225 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3257 DUP3 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x3261 DUP2 DUP6 PUSH2 0x323D JUMP JUMPDEST SWAP4 POP PUSH2 0x3271 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST PUSH2 0x327A DUP2 PUSH2 0x2FE0 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x329A PUSH0 DUP7 ADD DUP3 PUSH2 0x322E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x32B2 DUP3 DUP3 PUSH2 0x324D JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32CA DUP4 DUP4 PUSH2 0x3285 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x32E8 DUP3 PUSH2 0x31FC JUMP JUMPDEST PUSH2 0x32F2 DUP2 DUP6 PUSH2 0x3206 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3304 DUP6 PUSH2 0x3216 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x333F JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x3320 DUP6 DUP3 PUSH2 0x32BF JUMP JUMPDEST SWAP5 POP PUSH2 0x332B DUP4 PUSH2 0x32D2 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3307 JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x3365 PUSH0 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3378 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3391 PUSH0 DUP4 ADD DUP7 PUSH2 0x31CF JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x33A3 DUP2 DUP6 PUSH2 0x32DE JUMP JUMPDEST SWAP1 POP PUSH2 0x33B2 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3351 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x33C3 DUP2 PUSH2 0x3078 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x33DC PUSH0 DUP4 ADD DUP5 PUSH2 0x33BA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33F7 JUMPI PUSH2 0x33F6 PUSH2 0x3157 JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3412 DUP2 PUSH2 0x3400 JUMP JUMPDEST DUP2 EQ PUSH2 0x341C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x342D DUP2 PUSH2 0x3409 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3454 JUMPI PUSH2 0x3453 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3471 JUMPI PUSH2 0x3470 PUSH2 0x3437 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x348D JUMPI PUSH2 0x348C PUSH2 0x343B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x34AF JUMPI PUSH2 0x34AE PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x34BC DUP11 DUP3 DUP12 ADD PUSH2 0x33E2 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x34CD DUP11 DUP3 DUP12 ADD PUSH2 0x341F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x34EE JUMPI PUSH2 0x34ED PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x34FA DUP11 DUP3 DUP12 ADD PUSH2 0x343F JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0xA0 PUSH2 0x350D DUP11 DUP3 DUP12 ADD PUSH2 0x309F JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x352E JUMPI PUSH2 0x352D PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x353A DUP11 DUP3 DUP12 ADD PUSH2 0x343F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3561 DUP2 PUSH2 0x354B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x357A PUSH0 DUP4 ADD DUP5 PUSH2 0x3558 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x35B4 DUP2 PUSH2 0x3580 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x35D6 DUP2 PUSH2 0x35BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x35EF PUSH0 DUP4 ADD DUP6 PUSH2 0x35AB JUMP JUMPDEST PUSH2 0x35FC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x35CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3616 PUSH0 DUP4 ADD DUP6 PUSH2 0x35CD JUMP JUMPDEST PUSH2 0x3623 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x35CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3633 DUP2 PUSH2 0x30B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x364C PUSH0 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3669 JUMPI PUSH2 0x3668 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3676 DUP7 DUP3 DUP8 ADD PUSH2 0x309F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3687 DUP7 DUP3 DUP8 ADD PUSH2 0x309F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3698 DUP7 DUP3 DUP8 ADD PUSH2 0x30D2 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 0x36B7 DUP2 PUSH2 0x36A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x36D0 PUSH0 DUP4 ADD DUP5 PUSH2 0x36AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x36EE DUP2 PUSH2 0x36D6 JUMP JUMPDEST DUP2 EQ PUSH2 0x36F8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3709 DUP2 PUSH2 0x36E5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3725 JUMPI PUSH2 0x3724 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3732 DUP6 DUP3 DUP7 ADD PUSH2 0x36FB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3743 DUP6 DUP3 DUP7 ADD PUSH2 0x341F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3756 DUP2 PUSH2 0x3124 JUMP JUMPDEST DUP2 EQ PUSH2 0x3760 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3771 DUP2 PUSH2 0x374D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x378D JUMPI PUSH2 0x378C PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37AA JUMPI PUSH2 0x37A9 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x37B6 DUP6 DUP3 DUP7 ADD PUSH2 0x315B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x37C7 DUP6 DUP3 DUP7 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x37E5 PUSH0 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x37F8 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3811 PUSH0 DUP4 ADD DUP5 PUSH2 0x37D1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3820 DUP2 PUSH2 0x354B JUMP JUMPDEST DUP2 EQ PUSH2 0x382A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x383B DUP2 PUSH2 0x3817 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3857 JUMPI PUSH2 0x3856 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3864 DUP6 DUP3 DUP7 ADD PUSH2 0x36FB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3875 DUP6 DUP3 DUP7 ADD PUSH2 0x382D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH0 PUSH2 0x38A3 DUP3 PUSH2 0x387F JUMP JUMPDEST PUSH2 0x38AD DUP2 DUP6 PUSH2 0x3889 JUMP JUMPDEST SWAP4 POP PUSH2 0x38BD DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST PUSH2 0x38C6 DUP2 PUSH2 0x2FE0 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 0x38E9 DUP2 DUP5 PUSH2 0x3899 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3914 PUSH2 0x390F PUSH2 0x390A DUP5 PUSH2 0x3059 JUMP JUMPDEST PUSH2 0x38F1 JUMP JUMPDEST PUSH2 0x3059 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3925 DUP3 PUSH2 0x38FA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3936 DUP3 PUSH2 0x391B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3946 DUP2 PUSH2 0x392C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x395F PUSH0 DUP4 ADD DUP5 PUSH2 0x393D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x397A JUMPI PUSH2 0x3979 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3987 DUP5 DUP3 DUP6 ADD PUSH2 0x309F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x39A3 PUSH0 DUP4 ADD DUP5 PUSH2 0x35CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x39C1 JUMPI PUSH2 0x39C0 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x39CE DUP8 DUP3 DUP9 ADD PUSH2 0x33E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x39EF JUMPI PUSH2 0x39EE PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x39FB DUP8 DUP3 DUP9 ADD PUSH2 0x343F JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x80 PUSH2 0x3A0E DUP8 DUP3 DUP9 ADD PUSH2 0x309F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3A2F JUMPI PUSH2 0x3A2E PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A4C JUMPI PUSH2 0x3A4B PUSH2 0x3437 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3A68 JUMPI PUSH2 0x3A67 PUSH2 0x343B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A85 JUMPI PUSH2 0x3A84 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3AA2 JUMPI PUSH2 0x3AA1 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x3AAE DUP6 DUP3 DUP7 ADD PUSH2 0x3A1A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3ACF JUMPI PUSH2 0x3ACE PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3ADC DUP5 DUP3 DUP6 ADD PUSH2 0x36FB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3AEE DUP2 PUSH2 0x3400 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3B07 PUSH0 DUP4 ADD DUP5 PUSH2 0x3AE5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3B25 JUMPI PUSH2 0x3B24 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3B32 DUP8 DUP3 DUP9 ADD PUSH2 0x36FB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x3B43 DUP8 DUP3 DUP9 ADD PUSH2 0x382D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B64 JUMPI PUSH2 0x3B63 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x3B70 DUP8 DUP3 DUP9 ADD PUSH2 0x343F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3B93 JUMPI PUSH2 0x3B92 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BB0 JUMPI PUSH2 0x3BAF PUSH2 0x3437 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3BCC JUMPI PUSH2 0x3BCB PUSH2 0x343B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3BE9 JUMPI PUSH2 0x3BE8 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C06 JUMPI PUSH2 0x3C05 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x3C12 DUP6 DUP3 DUP7 ADD PUSH2 0x3B7E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C33 JUMPI PUSH2 0x3C32 PUSH2 0x3157 JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3C53 JUMPI PUSH2 0x3C52 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C70 JUMPI PUSH2 0x3C6F PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x3C7C DUP7 DUP3 DUP8 ADD PUSH2 0x315B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3C8D DUP7 DUP3 DUP8 ADD PUSH2 0x3C1E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x3C9E DUP7 DUP3 DUP8 ADD PUSH2 0x309F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x3CB1 DUP2 PUSH2 0x3400 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3CC0 DUP2 PUSH2 0x35BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x3CDA PUSH0 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3CED PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x31C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x3D07 PUSH0 DUP6 ADD DUP3 PUSH2 0x3CA8 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3D1A PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3CB7 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x3D2D PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3CC6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH2 0x3D46 PUSH0 DUP4 ADD DUP6 PUSH2 0x3CF3 JUMP JUMPDEST PUSH2 0x3D53 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3351 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D70 JUMPI PUSH2 0x3D6F PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3D7D DUP6 DUP3 DUP7 ADD PUSH2 0x309F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3D8E DUP6 DUP3 DUP7 ADD PUSH2 0x309F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DAD JUMPI PUSH2 0x3DAC PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3DBA DUP5 DUP3 DUP6 ADD PUSH2 0x33E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP 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 0x3E07 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3E1A JUMPI PUSH2 0x3E19 PUSH2 0x3DC3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x3E2E DUP2 PUSH2 0x3089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E49 JUMPI PUSH2 0x3E48 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3E56 DUP5 DUP3 DUP6 ADD PUSH2 0x3E20 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x3E6D DUP2 PUSH2 0x30BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E88 JUMPI PUSH2 0x3E87 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x3E95 DUP5 DUP3 DUP6 ADD PUSH2 0x3E5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x3ED4 DUP2 PUSH2 0x36D6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3EED PUSH0 DUP4 ADD DUP6 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x3EFA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AE5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3F0A DUP3 PUSH2 0x2FE0 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3F29 JUMPI PUSH2 0x3F28 PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3F3B PUSH2 0x3048 JUMP JUMPDEST SWAP1 POP PUSH2 0x3F47 DUP3 DUP3 PUSH2 0x3F01 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3F66 JUMPI PUSH2 0x3F65 PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3F9D JUMPI PUSH2 0x3F9C PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST PUSH2 0x3FA6 DUP3 PUSH2 0x2FE0 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3FD3 PUSH2 0x3FCE DUP5 PUSH2 0x3F83 JUMP JUMPDEST PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x3FEF JUMPI PUSH2 0x3FEE PUSH2 0x3F7F JUMP JUMPDEST JUMPDEST PUSH2 0x3FFA DUP5 DUP3 DUP6 PUSH2 0x3FB3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4016 JUMPI PUSH2 0x4015 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4026 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3FC1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4044 JUMPI PUSH2 0x4043 PUSH2 0x3F77 JUMP JUMPDEST JUMPDEST PUSH2 0x404E PUSH1 0x60 PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x405D DUP5 DUP3 DUP6 ADD PUSH2 0x36FB JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x4070 DUP5 DUP3 DUP6 ADD PUSH2 0x382D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4094 JUMPI PUSH2 0x4093 PUSH2 0x3F7B JUMP JUMPDEST JUMPDEST PUSH2 0x40A0 DUP5 DUP3 DUP6 ADD PUSH2 0x4002 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40BE PUSH2 0x40B9 DUP5 PUSH2 0x3F4C JUMP JUMPDEST PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x40E1 JUMPI PUSH2 0x40E0 PUSH2 0x343B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4128 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4106 JUMPI PUSH2 0x4105 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x4113 DUP10 DUP3 PUSH2 0x402F JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x40E3 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x413E CALLDATASIZE DUP5 DUP5 PUSH2 0x40AC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x4161 JUMPI PUSH2 0x4160 PUSH2 0x4146 JUMP JUMPDEST JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x4172 JUMPI PUSH2 0x4171 PUSH2 0x414A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 MUL DUP4 ADD SWAP2 POP DUP5 DUP7 SUB SWAP1 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x419C DUP3 PUSH2 0x387F JUMP JUMPDEST PUSH2 0x41A6 DUP2 DUP6 PUSH2 0x4188 JUMP JUMPDEST SWAP4 POP PUSH2 0x41B6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x41CD DUP4 DUP6 PUSH2 0x4188 JUMP JUMPDEST SWAP4 POP PUSH2 0x41DA DUP4 DUP6 DUP5 PUSH2 0x3FB3 JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x41F1 DUP3 DUP7 PUSH2 0x4192 JUMP JUMPDEST SWAP2 POP PUSH2 0x41FE DUP3 DUP5 DUP7 PUSH2 0x41C2 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4216 DUP4 DUP6 PUSH2 0x3889 JUMP JUMPDEST SWAP4 POP PUSH2 0x4223 DUP4 DUP6 DUP5 PUSH2 0x3FB3 JUMP JUMPDEST PUSH2 0x422C DUP4 PUSH2 0x2FE0 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x4250 DUP2 DUP5 DUP7 PUSH2 0x420B JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP3 CALLDATALOAD PUSH1 0x1 PUSH2 0x140 SUB DUP4 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x42AE JUMPI PUSH2 0x42AD PUSH2 0x4286 JUMP JUMPDEST JUMPDEST DUP1 DUP4 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x42D6 JUMPI PUSH2 0x42D5 PUSH2 0x4286 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x42F8 JUMPI PUSH2 0x42F7 PUSH2 0x428A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x4314 JUMPI PUSH2 0x4313 PUSH2 0x428E JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x432A PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x36FB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x433B DUP2 PUSH2 0x36D6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x434F PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x341F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4360 DUP2 PUSH2 0x35BA JUMP JUMPDEST DUP2 EQ PUSH2 0x436A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x437B DUP2 PUSH2 0x4357 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x438F PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x436D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 ADD PUSH2 0x43A7 PUSH0 DUP4 ADD DUP4 PUSH2 0x431C JUMP JUMPDEST PUSH2 0x43B3 PUSH0 DUP6 ADD DUP3 PUSH2 0x4332 JUMP JUMPDEST POP PUSH2 0x43C1 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x4341 JUMP JUMPDEST PUSH2 0x43CE PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3CA8 JUMP JUMPDEST POP PUSH2 0x43DC PUSH1 0x40 DUP4 ADD DUP4 PUSH2 0x4381 JUMP JUMPDEST PUSH2 0x43E9 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3CB7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP PUSH2 0x4402 PUSH0 DUP4 ADD DUP11 PUSH2 0x4397 JUMP JUMPDEST PUSH2 0x440F PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x3AE5 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x4422 DUP2 DUP8 DUP10 PUSH2 0x420B JUMP JUMPDEST SWAP1 POP PUSH2 0x4431 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x33BA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x4444 DUP2 DUP5 DUP7 PUSH2 0x420B JUMP JUMPDEST SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4464 PUSH2 0x445F DUP5 PUSH2 0x3F83 JUMP JUMPDEST PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4480 JUMPI PUSH2 0x447F PUSH2 0x3F7F JUMP JUMPDEST JUMPDEST PUSH2 0x448B DUP5 DUP3 DUP6 PUSH2 0x2FB8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x44A7 JUMPI PUSH2 0x44A6 PUSH2 0x3433 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x44B7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4452 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44D5 JUMPI PUSH2 0x44D4 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44F2 JUMPI PUSH2 0x44F1 PUSH2 0x3055 JUMP JUMPDEST JUMPDEST PUSH2 0x44FE DUP5 DUP3 DUP6 ADD PUSH2 0x4493 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x451A PUSH0 DUP4 ADD DUP6 PUSH2 0x362A JUMP JUMPDEST PUSH2 0x4527 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4541 PUSH0 DUP4 ADD DUP5 PUSH2 0x3ECB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x455C JUMPI PUSH2 0x455B PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4569 DUP5 DUP3 DUP6 ADD PUSH2 0x436D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4595 PUSH2 0x4590 PUSH2 0x458B DUP5 PUSH2 0x4572 JUMP JUMPDEST PUSH2 0x38F1 JUMP JUMPDEST PUSH2 0x354B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45A5 DUP2 PUSH2 0x457B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x45BE PUSH0 DUP4 ADD DUP8 PUSH2 0x33BA JUMP JUMPDEST PUSH2 0x45CB PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3AE5 JUMP JUMPDEST PUSH2 0x45D8 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x459C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x45EA DUP2 DUP5 PUSH2 0x3899 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4608 PUSH0 DUP4 ADD DUP6 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x4615 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x462F PUSH0 DUP4 ADD DUP7 PUSH2 0x33BA JUMP JUMPDEST PUSH2 0x463C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x362A JUMP JUMPDEST PUSH2 0x4649 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x4669 DUP2 DUP6 PUSH2 0x3899 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x467D DUP2 DUP5 PUSH2 0x3899 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x4694 DUP2 PUSH2 0x374D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46AF JUMPI PUSH2 0x46AE PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x46BC DUP5 DUP3 DUP6 ADD PUSH2 0x4686 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x46DF DUP3 PUSH2 0x387F JUMP JUMPDEST PUSH2 0x46E9 DUP2 DUP6 PUSH2 0x46C5 JUMP JUMPDEST SWAP4 POP PUSH2 0x46F9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB8 JUMP JUMPDEST PUSH2 0x4702 DUP2 PUSH2 0x2FE0 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4716 DUP2 PUSH2 0x3124 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x4731 PUSH0 DUP7 ADD DUP3 PUSH2 0x4332 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x4744 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x3CA8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x475C DUP3 DUP3 PUSH2 0x46D5 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x4776 DUP3 DUP3 PUSH2 0x46D5 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x478B PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0x470D JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x47AE DUP2 DUP6 PUSH2 0x471C JUMP JUMPDEST SWAP1 POP PUSH2 0x47BD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x33BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x47D9 JUMPI PUSH2 0x47D8 PUSH2 0x3F77 JUMP JUMPDEST JUMPDEST PUSH2 0x47E3 PUSH1 0x40 PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x47F2 DUP5 DUP3 DUP6 ADD PUSH2 0x3E5F JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x4805 DUP5 DUP3 DUP6 ADD PUSH2 0x3E5F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4826 JUMPI PUSH2 0x4825 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4833 DUP5 DUP3 DUP6 ADD PUSH2 0x47C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP 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 0x4898 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x485D JUMP JUMPDEST PUSH2 0x48A2 DUP7 DUP4 PUSH2 0x485D 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 PUSH2 0x48D4 PUSH2 0x48CF PUSH2 0x48CA DUP5 PUSH2 0x30B3 JUMP JUMPDEST PUSH2 0x38F1 JUMP JUMPDEST PUSH2 0x30B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x48ED DUP4 PUSH2 0x48BA JUMP JUMPDEST PUSH2 0x4901 PUSH2 0x48F9 DUP3 PUSH2 0x48DB JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x4869 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x4915 PUSH2 0x4909 JUMP JUMPDEST PUSH2 0x4920 DUP2 DUP5 DUP5 PUSH2 0x48E4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4943 JUMPI PUSH2 0x4938 PUSH0 DUP3 PUSH2 0x490D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4926 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x4988 JUMPI PUSH2 0x4959 DUP2 PUSH2 0x483C JUMP JUMPDEST PUSH2 0x4962 DUP5 PUSH2 0x484E JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4971 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x4985 PUSH2 0x497D DUP6 PUSH2 0x484E JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x4925 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x49A8 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x498D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x49C0 DUP4 DUP4 PUSH2 0x4999 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x49D9 DUP3 PUSH2 0x387F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x49F2 JUMPI PUSH2 0x49F1 PUSH2 0x3E9E JUMP JUMPDEST JUMPDEST PUSH2 0x49FC DUP3 SLOAD PUSH2 0x3DF0 JUMP JUMPDEST PUSH2 0x4A07 DUP3 DUP3 DUP6 PUSH2 0x4947 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4A38 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x4A26 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x4A30 DUP6 DUP3 PUSH2 0x49B5 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x4A97 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x4A46 DUP7 PUSH2 0x483C JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4A6D 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 0x4A48 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4A8A JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x4A86 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x4999 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 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 PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4AD1 DUP2 PUSH2 0x354B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x4AEC PUSH0 DUP7 ADD DUP3 PUSH2 0x4332 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x4AFF PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x4AC8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x4B17 DUP3 DUP3 PUSH2 0x46D5 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4B2F DUP4 DUP4 PUSH2 0x4AD7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4B4D DUP3 PUSH2 0x4A9F JUMP JUMPDEST PUSH2 0x4B57 DUP2 DUP6 PUSH2 0x4AA9 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x4B69 DUP6 PUSH2 0x4AB9 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4BA4 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x4B85 DUP6 DUP3 PUSH2 0x4B24 JUMP JUMPDEST SWAP5 POP PUSH2 0x4B90 DUP4 PUSH2 0x4B37 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4B6C JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x4BCE DUP2 DUP5 PUSH2 0x4B43 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BEB JUMPI PUSH2 0x4BEA PUSH2 0x3F77 JUMP JUMPDEST JUMPDEST PUSH2 0x4BF5 PUSH1 0x40 PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4C04 DUP5 DUP3 DUP6 ADD PUSH2 0x30D2 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x4C17 DUP5 DUP3 DUP6 ADD PUSH2 0x30D2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C38 JUMPI PUSH2 0x4C37 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4C45 DUP5 DUP3 DUP6 ADD PUSH2 0x4BD6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x4C61 PUSH0 DUP4 ADD DUP7 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x4C6E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x362A JUMP JUMPDEST PUSH2 0x4C7B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x4CE7 DUP3 PUSH2 0x30B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x4CF2 DUP4 PUSH2 0x30B3 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x4D02 JUMPI PUSH2 0x4D01 PUSH2 0x4C83 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4D17 DUP3 PUSH2 0x30B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x4D22 DUP4 PUSH2 0x30B3 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x4D30 DUP2 PUSH2 0x30B3 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x4D47 JUMPI PUSH2 0x4D46 PUSH2 0x4CB0 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4D63 DUP4 DUP4 PUSH2 0x4D4E JUMP JUMPDEST DUP3 PUSH2 0x4D6E DUP2 CALLDATALOAD PUSH2 0x3400 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH2 0x4DAE JUMPI PUSH2 0x4DA9 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL PUSH2 0x485D JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4DEC DUP4 DUP4 PUSH2 0x4D4E JUMP JUMPDEST DUP3 PUSH2 0x4DF7 DUP2 CALLDATALOAD PUSH2 0x4DB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x8 DUP3 LT ISZERO PUSH2 0x4E37 JUMPI PUSH2 0x4E32 PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x8 SUB PUSH1 0x8 MUL PUSH2 0x485D JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xC0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4E55 DUP3 PUSH2 0x4E3F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4E6D PUSH2 0x4E68 DUP3 PUSH2 0x35BA JUMP JUMPDEST PUSH2 0x4E4B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xE0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4E89 DUP3 PUSH2 0x4E73 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4EA1 PUSH2 0x4E9C DUP3 PUSH2 0x36D6 JUMP JUMPDEST PUSH2 0x4E7F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4EC1 PUSH2 0x4EBC DUP3 PUSH2 0x30B3 JUMP JUMPDEST PUSH2 0x4EA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4ED2 DUP3 DUP8 PUSH2 0x4E5C JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x4EE2 DUP3 DUP7 PUSH2 0x4E90 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SWAP2 POP PUSH2 0x4EF2 DUP3 DUP6 PUSH2 0x4EB0 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4F02 DUP3 DUP5 PUSH2 0x4192 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F1A DUP3 PUSH2 0x30B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x4F25 DUP4 PUSH2 0x30B3 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x4F3D JUMPI PUSH2 0x4F3C PUSH2 0x4CB0 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4F5D PUSH2 0x4F58 DUP3 PUSH2 0x3400 JUMP JUMPDEST PUSH2 0x4F43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F6E DUP3 DUP6 PUSH2 0x4F4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4F7E DUP3 DUP5 PUSH2 0x4E5C JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F99 DUP3 DUP8 PUSH2 0x4F4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4FA9 DUP3 DUP7 PUSH2 0x4E5C JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x4FB9 DUP3 DUP6 PUSH2 0x4F4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4FC9 DUP3 DUP5 PUSH2 0x4192 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x4FE5 DUP2 PUSH2 0x3409 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x4FF9 DUP2 PUSH2 0x4357 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5014 JUMPI PUSH2 0x5013 PUSH2 0x3F77 JUMP JUMPDEST JUMPDEST PUSH2 0x501E PUSH1 0x60 PUSH2 0x3F32 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x502D DUP5 DUP3 DUP6 ADD PUSH2 0x4FD7 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x5040 DUP5 DUP3 DUP6 ADD PUSH2 0x4FEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x5054 DUP5 DUP3 DUP6 ADD PUSH2 0x47C4 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5075 JUMPI PUSH2 0x5074 PUSH2 0x3051 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x5082 DUP5 DUP3 DUP6 ADD PUSH2 0x4FFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x509E PUSH0 DUP4 ADD DUP7 PUSH2 0x33BA JUMP JUMPDEST PUSH2 0x50AB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x33BA JUMP JUMPDEST PUSH2 0x50B8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x362A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0x2B SWAP1 0xEB 0xA6 CALLER BALANCE 0xB2 0xAC 0xB4 0xD DUP15 CALLDATALOAD PUSH25 0x6EC952268846213C4537DC6B1465D8DD4F2764736F6C634300 ADDMOD XOR STOP CALLER ",
"sourceMap": "349:339:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3979:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5176:1276:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2330:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4368:708:12;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2204:40:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3475:140;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1287:235:10;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2830:97:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2167:31:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4757:244:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1724:108:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6903:774:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;875:93:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;538::18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16151:132:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;446:46:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4657:163:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2985:116:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:28;;;;;;;;;;;;;:::i;:::-;;3507:128:12;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2013:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4222:87:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:85:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:46:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1460:94:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3296:178:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;559:23:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1391:156:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;569:48:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3510:981:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1698:1333:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8365:290:24;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3252:105:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3679:409:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1100:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3532:140:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1076:84:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2771:149:12;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89:33;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3979:186::-;4052:4;4068:13;4084:12;:10;:12::i;:::-;4068:28;;4106:31;4115:5;4122:7;4131:5;4106:8;:31::i;:::-;4154:4;4147:11;;;3979:186;;;;:::o;5176:1276:24:-;5302:24;;:::i;:::-;5328:35;5365:28;;:::i;:::-;5409:19;5483;5512:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5505:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5483:56;;5601:34;;;;;;;;5610:11;5601:34;;;;5623:11;5601:34;;;5590:45;;5771:1;5752:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5736:37;;6210:20;6232:24;6260:120;6284:10;:19;;;6317:10;:22;;;6353:10;:17;;;;;;;;;;:::i;:::-;6260:10;:120::i;:::-;6209:171;;;;6403:42;;;;;;;;6414:12;6403:42;;;;6428:16;6403:42;;;6390:55;;5399:1053;;;;5176:1276;;;;;:::o;2330:27::-;;;;;;;;;;;;;:::o;4368:708:12:-;4694:10;4673:31;;4681:8;4673:31;;;4669:68;;4726:10;4713:24;;;;;;;;;;;:::i;:::-;;;;;;;;4669:68;4873:7;:14;;;4837:32;4854:7;:14;;;;;;;;;;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:7;:14;;;;;;;;;;:::i;:::-;4921:7;:14;;;4896:40;;;;;;;;;;;;:::i;:::-;;;;;;;;4833:103;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;2204:40:24:-;2243:1;2204:40;:::o;3475:140::-;3528:18;3548:14;3582:22;3606:1;3574:34;;;;3475:140;;:::o;1287:235:10:-;1414:20;1436:22;843:1:13;678::12;1474:41:10;;;;1287:235;;:::o;2830:97:33:-;2882:7;2908:12;;2901:19;;2830:97;:::o;2167:31:24:-;2197:1;2167:31;:::o;4757:244:33:-;4844:4;4860:15;4878:12;:10;:12::i;:::-;4860:30;;4900:37;4916:4;4922:7;4931:5;4900:15;:37::i;:::-;4947:26;4957:4;4963:2;4967:5;4947:9;:26::i;:::-;4990:4;4983:11;;;4757:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;1724:108:11:-;1531:13:28;:11;:13::i;:::-;1804:21:11::1;1813:4;1819:5;1804:8;:21::i;:::-;1724:108:::0;;:::o;6903:774:24:-;7026:26;;:::i;:::-;7237:24;7265:74;7276:10;:19;;;7297:10;:22;;;7321:10;:17;;;;;;;;;;:::i;:::-;7265:10;:74::i;:::-;7234:105;;;7428:20;7450;7474:49;7494:10;7506:16;7474:19;:49::i;:::-;7427:96;;;;7612:58;7619:10;:17;;;;;;;;;;:::i;:::-;7638:7;7647;7656:13;7612:6;:58::i;:::-;7605:65;;;;;6903:774;;;;:::o;875:93:19:-;922:7;956:4;941:20;;875:93;:::o;538::18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16151:132:24:-;16233:4;16271:5;16256;:11;16262:4;16256:11;;;;;;;;;;;;;;;;:20;16249:27;;16151:132;;;;:::o;446:46:11:-;;;:::o;4657:163:24:-;1531:13:28;:11;:13::i;:::-;4755::24::1;4740:12;;:28;;;;;;;;;;;;;;;;;;4783:30;4799:13;4783:30;;;;;;:::i;:::-;;;;;;;;4657:163:::0;:::o;2985:116:33:-;3050:7;3076:9;:18;3086:7;3076:18;;;;;;;;;;;;;;;;3069:25;;2985:116;;;:::o;2293:101:28:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;3507:128:12:-;3596:12;3507:128;;;;:::o;2013:216::-;2175:4;2217;2198:24;;:7;:24;;;2191:31;;2013:216;;;;;;:::o;4222:87:24:-;4277:5;4301:1;4294:8;;4222:87;:::o;1638:85:28:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1962:93:33:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;1861:46:24:-;;;:::o;1460:94:23:-;1519:4;1460:94;:::o;3296:178:33:-;3365:4;3381:13;3397:12;:10;:12::i;:::-;3381:28;;3419:27;3429:5;3436:2;3440:5;3419:9;:27::i;:::-;3463:4;3456:11;;;3296:178;;;;:::o;559:23:19:-;;;;;;;;;;;;;:::o;1391:156:18:-;1531:13:28;:11;:13::i;:::-;1503:37:18::1;1523:16;;1503:37;;;;;:::i;:::-;:19;:37::i;:::-;1391:156:::0;;:::o;569:48:11:-;;;;;;;;;;;;;;;;;:::o;3510:981:18:-;3653:12;3677:21;3701:15;:21;3717:4;3701:21;;;;;;;;;;;;;;;:31;3723:8;3701:31;;;;;;;;;;;;;;;3677:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3880:1;3861:8;:15;:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3857:46;3988:1;3964:13;;:20;;:25;3960:46;;3998:8;3991:15;;;;;3960:46;4153:1;4129:13;;:20;;:25;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;:34::i;:::-;4353:8;4363:13;;4377:1;4363:17;;;;;;;;;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;;;;;;;;;;;:::i;:::-;;;;;;;;3510:981;;;;;;;:::o;1698:1333:19:-;1799:9;1794:1037;1818:8;;:15;;1814:1;:19;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;1854:43;;1980:50;1987:6;:13;;:20;;;;;;;;;;:::i;:::-;2009:6;:13;;:20;;;1980:6;:50::i;:::-;1975:65;;2032:8;;;1975:65;2602:4;:22;;;2633:6;:12;;;2665:6;:13;;2696:6;:11;;;2725:6;:14;;;;;;;;:::i;:::-;2757:6;:15;;;;;;;;;;:::i;:::-;2790:6;:16;;;;;;;;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;;;;;;1794:1037;;;;2988:10;2978:43;;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2961:63;;;;;;;;;;;:::i;:::-;;;;;;;;8365:290:24;8526:34;;:::i;:::-;8562:28;;:::i;:::-;8609:39;8615:10;8627:4;8633:14;8609:5;:39::i;:::-;8602:46;;;;8365:290;;;;;;:::o;3252:105:11:-;1531:13:28;:11;:13::i;:::-;3319:8:11::1;:20;;;3340:9;3319:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:19:-;3980:4;3958:27;;:10;:27;;;3954:50;;3994:10;;;;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;:::-;3679:409;;;;;;;:::o;1100:139::-;1531:13:28;:11;:13::i;:::-;1186:9:19::1;1175:8;;:20;;;;;;;;;;;;;;;;;;1210:22;1222:9;1210:22;;;;;;:::i;:::-;;;;;;;;1100:139:::0;:::o;3532:140:33:-;3612:7;3638:11;:18;3650:5;3638:18;;;;;;;;;;;;;;;:27;3657:7;3638:27;;;;;;;;;;;;;;;;3631:34;;3532:140;;;;:::o;2543:215:28:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1076:84:23:-;1114:7;1148:4;1133:20;;1076:84;:::o;2771:149:12:-;2853:4;2900:6;:13;;;2876:5;:20;2882:6;:13;;;;;;;;;;:::i;:::-;2876:20;;;;;;;;;;;;;;;;:37;2869:44;;2771:149;;;:::o;656:96:37:-;709:7;735:10;728:17;;656:96;:::o;8707:128:33:-;8791:37;8800:5;8807:7;8816:5;8823:4;8791:8;:37::i;:::-;8707:128;;;:::o;18168:668:24:-;18310:20;18332:24;18506:22;18518:9;18506:11;:22::i;:::-;18491:37;;18654:12;18635:31;;18736:12;18717:16;:31;18713:117;;;18788:16;18806:12;18771:48;;;;;;;;;;;;:::i;:::-;;;;;;;;18713:117;18168:668;;;;;;:::o;2718:196:11:-;2788:7;2807:12;2822:5;:11;2828:4;2822:11;;;;;;;;;;;;;;;;2807:26;;2863:1;2855:10;;2847:4;:18;2843:43;;2881:4;2874:12;;;;;;;;;;;:::i;:::-;;;;;;;;2843:43;2903:4;2896:11;;;2718:196;;;:::o;12944:1806:24:-;13421:17;13441:36;:17;:8;;:15;:17::i;:::-;:34;:36::i;:::-;13421:56;;13610:24;13637:62;13645:9;13656:26;13662:19;:8;;:17;:19::i;:::-;13656:5;:26::i;:::-;13684:7;:14;;;;;;;;;;:::i;:::-;13637:7;:62::i;:::-;13610:89;;13714:21;:8;;:19;:21::i;:::-;13710:955;;;13814:23;13840:175;13883:7;:13;;;;;;;;;;:::i;:::-;13914:7;:14;;;;;;;;;;:::i;:::-;13946:16;13980:21;:8;;:19;:21::i;:::-;13840:25;:175::i;:::-;13814:201;;14562:8;:20;;;14583:9;14594:5;14601:1;14643:10;14562:92;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13737:928;13710:955;14715:9;14680:63;;14692:5;14680:63;14699:7;:14;;;;;;;;;;:::i;:::-;14726:16;14680:63;;;;;;;:::i;:::-;;;;;;;;13247:1503;;12944:1806;;;;;;;:::o;10396:476:33:-;10495:24;10522:25;10532:5;10539:7;10522:9;:25::i;:::-;10495:52;;10580:17;10561:16;:36;10557:309;;;10636:5;10617:16;:24;10613:130;;;10695:7;10704:16;10722:5;10668:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10613:130;10784:57;10793:5;10800:7;10828:5;10809:16;:24;10835:5;10784:8;:57::i;:::-;10557:309;10485:387;10396:476;;;:::o;5374:300::-;5473:1;5457:18;;:4;:18;;;5453:86;;5525:1;5498:30;;;;;;;;;;;:::i;:::-;;;;;;;;5453:86;5566:1;5552:16;;:2;:16;;;5548:86;;5620:1;5591:32;;;;;;;;;;;:::i;:::-;;;;;;;;5548:86;5643:24;5651:4;5657:2;5661:5;5643:7;:24::i;:::-;5374:300;;;:::o;1796:162:28:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;2286:134:11:-;2373:5;2359;:11;2365:4;2359:11;;;;;;;;;;;;;;;:19;;;;2393:20;2401:4;2407:5;2393:20;;;;;;;:::i;:::-;;;;;;;;2286:134;;:::o;10990:1436:24:-;11122:20;11144;11176:15;11347:324;11379:10;:13;;;11406:16;11412:9;11406:5;:16::i;:::-;11640:10;:21;;;;;;;;:::i;:::-;11347:324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;:324::i;:::-;11323:348;;;;;;;;11751:14;11768:10;:33;;2197:1;11768:33;;;2243:1;11768:33;11751:50;;11923:67;11938:10;:17;;;;;;;;;;:::i;:::-;11957:7;11966:10;:23;;;;;;;;:::i;:::-;11923:14;:67::i;:::-;11913:77;;12228:17;12248:12;;;;;;;;;;;12228:32;;12361:1;12340:23;;:9;:23;;;12336:83;;12383:9;12365:36;;;12402:7;12411;12365:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12336:83;11166:1260;;;10990:1436;;;;;:::o;2038:391:13:-;2205:23;;:::i;:::-;2259:8;:14;;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2240:182;;2038:391;;;;;;:::o;2912:187:28:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;2237:514:18:-;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;;2389:3;;;;;;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;:::-;;;;;;;;2237:514;:::o;4631:264::-;4715:18;4801:1;4791:8;4787:16;4781:23;4766:38;;463:1;4827:28;;:11;:28;;;4823:65;;4879:8;4864:24;;;;;;;;;;;:::i;:::-;;;;;;;;4823:65;4705:190;4631:264;:::o;9363:1333:24:-;9517:34;;:::i;:::-;9553:28;;:::i;:::-;9915:20;9937:24;9965:140;9985:10;10009;:19;;;10042:10;:22;;;10078:10;:17;;;;;;;;;;:::i;:::-;9965:6;:140::i;:::-;9914:191;;;;10194:20;10216;10240:49;10260:10;10272:16;10240:19;:49::i;:::-;10193:96;;;;10412:66;10420:10;:17;;;;;;;;;;:::i;:::-;10439:7;10448;10457:4;10412:66;;;;;;;;;;:::i;:::-;10463:14;10412:7;:66::i;:::-;10399:79;;10544:42;;;;;;;;10555:12;10544:42;;;;10569:16;10544:42;;;10531:55;;10646:10;10602:87;;10610:10;:15;;;10602:87;10627:10;:17;;;;;;;;;;:::i;:::-;10658:12;10672:16;10602:87;;;;;;;;:::i;:::-;;;;;;;;9583:1113;;;;9363:1333;;;;;;:::o;15496:287::-;15717:59;15728:7;15737:5;15744:8;;15754:9;15765:10;;15717;:59::i;:::-;15496:287;;;;;;;:::o;9682:432:33:-;9811:1;9794:19;;:5;:19;;;9790:89;;9865:1;9836:32;;;;;;;;;;;:::i;:::-;;;;;;;;9790:89;9911:1;9892:21;;:7;:21;;;9888:90;;9964:1;9936:31;;;;;;;;;;;:::i;:::-;;;;;;;;9888:90;10017:5;9987:11;:18;9999:5;9987:18;;;;;;;;;;;;;;;:27;10006:7;9987:27;;;;;;;;;;;;;;;:35;;;;10036:9;10032:76;;;10082:7;10066:31;;10075:5;10066:31;;;10091:5;10066:31;;;;;;:::i;:::-;;;;;;;;10032:76;9682:432;;;;:::o;16677:172:24:-;16748:16;16821:21;16796;16784:9;:33;;;;:::i;:::-;16783:59;;;;:::i;:::-;16776:66;;16677:172;;;:::o;1573:123:27:-;1633:7;1667:4;;:21;;188:2;1667:21;;;;;;;;;:::i;:::-;1659:30;;;;;:::i;:::-;1652:37;;1573:123;;;;:::o;2780:::-;2841:7;2891:2;2883:11;;2860:36;;2780:123;;;:::o;1874:152::-;1936:6;1975:4;;188:2;1975:42;;;243:2;1975:42;;;;;;;;;:::i;:::-;1968:50;;;;;:::i;:::-;1961:58;;1954:65;;1874:152;;;;:::o;17073:139:24:-;17137:16;17184:21;17172:9;:33;;;;;;:::i;:::-;17165:40;;17073:139;;;:::o;2939:462:23:-;3073:24;3128:3;3113:19;;:3;:19;;;3109:46;;3148:6;3134:21;;3109:46;3251:21;3257:3;3262:9;3251:5;:21::i;:::-;3385:9;3378:16;;2939:462;;;;;:::o;1282:129:27:-;1346:4;243:2;1369:35;;:4;;:11;;:35;1362:42;;1282:129;;;;:::o;2186:130::-;2250:12;2281:4;;243:2;2281:28;;;;;;;;;;;:::i;:::-;2274:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2186:130;;;;:::o;640:284:26:-;824:17;877:6;885:7;894:9;905:11;860:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;853:64;;640:284;;;;;;:::o;5989:1107:33:-;6094:1;6078:18;;:4;:18;;;6074:540;;6230:5;6214:12;;:21;;;;;;;:::i;:::-;;;;;;;;6074:540;;;6266:19;6288:9;:15;6298:4;6288:15;;;;;;;;;;;;;;;;6266:37;;6335:5;6321:11;:19;6317:115;;;6392:4;6398:11;6411:5;6367:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6317:115;6584:5;6570:11;:19;6552:9;:15;6562:4;6552:15;;;;;;;;;;;;;;;:37;;;;6252:362;6074:540;6642:1;6628:16;;:2;:16;;;6624:425;;6807:5;6791:12;;:21;;;;;;;;;;;6624:425;;;7019:5;7002:9;:13;7012:2;7002:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6624:425;7079:2;7064:25;;7073:4;7064:25;;;7083:5;7064:25;;;;;;:::i;:::-;;;;;;;;5989:1107;;;:::o;17436:147:24:-;17501:15;17554:21;17542:9;:33;;;;:::i;:::-;17528:48;;17436:147;;;:::o;598:506:27:-;732:17;751:15;812:1;791:11;:18;:22;778:35;;934:10;:163;;1074:7;1083:13;1057:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;934:163;;;976:7;985:13;1000:28;1017:10;1000:16;:28::i;:::-;1030:11;959:83;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;934:163;927:170;;598:506;;;;;;:::o;2037:567:23:-;2198:20;2220:24;2291:44;2302:9;2313:12;2327:7;2291:10;:44::i;:::-;2256:79;;;;;;;;2571:26;2577:5;2584:12;2571:5;:26::i;:::-;2037:567;;;;;;;:::o;3188:766:13:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3554:49;;3635:1;3617:4;:15;;;:19;3613:53;;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3613:53;3755:8;:13;;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:270;;;3188:766;;;;;;;:::o;7439:208:33:-;7528:1;7509:21;;:7;:21;;;7505:91;;7582:1;7553:32;;;;;;;;;;;:::i;:::-;;;;;;;;7505:91;7605:35;7621:1;7625:7;7634:5;7605:7;:35::i;:::-;7439:208;;:::o;2484:129:27:-;2548:7;2598:5;2582:23;;2574:32;;2567:39;;2484:129;;;:::o;7965:206:33:-;8054:1;8035:21;;:7;:21;;;8031:89;;8106:1;8079:30;;;;;;;;;;;:::i;:::-;;;;;;;;8031:89;8129:35;8137:7;8154:1;8158:5;8129:7;:35::i;:::-;7965:206;;:::o;4650:191:13:-;4716:17;4762:10;4749:9;:23;4745:62;;4797:9;4781:26;;;;;;;;;;;:::i;:::-;;;;;;;;4745:62;4824:10;4817:17;;4650:191;;;:::o;5218:410::-;5371:15;5389:8;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;;5440:1;5421:21;;:7;:21;;;5417:54;;5451:20;;;;;;;;;;;;;;5417:54;5545:76;5578:10;5598:8;5609:11;5552:7;5545:32;;;;:76;;;;;;:::i;:::-;5277:351;5218:410;:::o;1618:188:36:-;1718:81;1738:5;1760;:18;;;1781:4;1787:2;1791:5;1745:53;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:19;:81::i;:::-;1618:188;;;;:::o;8370:720::-;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;8866:16;8852:30;;8916:1;8910:8;8895:23;;8532:396;8956:1;8942:10;:15;:68;;9009:1;8994:11;:16;;8942:68;;;8990:1;8968:5;8960:26;;;:31;8942:68;8938:146;;;9066:5;9033:40;;;;;;;;;;;:::i;:::-;;;;;;;;8938:146;8440:650;;8370:720;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;7:99:40:-;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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3593:234;3668:5;3709:3;3700:6;3695:3;3691:16;3687:26;3684:113;;;3716:79;;:::i;:::-;3684:113;3815:6;3806:15;;3593:234;;;;:::o;3833:547::-;3921:6;3970:2;3958:9;3949:7;3945:23;3941:32;3938:119;;;3976:79;;:::i;:::-;3938:119;4124:1;4113:9;4109:17;4096:31;4154:18;4146:6;4143:30;4140:117;;;4176:79;;:::i;:::-;4140:117;4281:82;4355:7;4346:6;4335:9;4331:22;4281:82;:::i;:::-;4271:92;;4067:306;3833:547;;;;:::o;4386:108::-;4463:24;4481:5;4463:24;:::i;:::-;4458:3;4451:37;4386:108;;:::o;4542:523::-;4691:4;4686:3;4682:14;4785:4;4778:5;4774:16;4768:23;4804:63;4861:4;4856:3;4852:14;4838:12;4804:63;:::i;:::-;4706:171;4966:4;4959:5;4955:16;4949:23;4985:63;5042:4;5037:3;5033:14;5019:12;4985:63;:::i;:::-;4887:171;4660:405;4542:523;;:::o;5071:144::-;5168:6;5202:5;5196:12;5186:22;;5071:144;;;:::o;5221:214::-;5350:11;5384:6;5379:3;5372:19;5424:4;5419:3;5415:14;5400:29;;5221:214;;;;:::o;5441:162::-;5538:4;5561:3;5553:11;;5591:4;5586:3;5582:14;5574:22;;5441:162;;;:::o;5609:76::-;5645:7;5674:5;5663:16;;5609:76;;;:::o;5691:105::-;5766:23;5783:5;5766:23;:::i;:::-;5761:3;5754:36;5691:105;;:::o;5802:159::-;5876:11;5910:6;5905:3;5898:19;5950:4;5945:3;5941:14;5926:29;;5802:159;;;;:::o;5967:357::-;6045:3;6073:39;6106:5;6073:39;:::i;:::-;6128:61;6182:6;6177:3;6128:61;:::i;:::-;6121:68;;6198:65;6256:6;6251:3;6244:4;6237:5;6233:16;6198:65;:::i;:::-;6288:29;6310:6;6288:29;:::i;:::-;6283:3;6279:39;6272:46;;6049:275;5967:357;;;;:::o;6380:618::-;6499:3;6535:4;6530:3;6526:14;6629:4;6622:5;6618:16;6612:23;6648:61;6703:4;6698:3;6694:14;6680:12;6648:61;:::i;:::-;6550:169;6808:4;6801:5;6797:16;6791:23;6861:3;6855:4;6851:14;6844:4;6839:3;6835:14;6828:38;6887:73;6955:4;6941:12;6887:73;:::i;:::-;6879:81;;6729:242;6988:4;6981:11;;6504:494;6380:618;;;;:::o;7004:276::-;7133:10;7168:106;7270:3;7262:6;7168:106;:::i;:::-;7154:120;;7004:276;;;;:::o;7286:143::-;7386:4;7418;7413:3;7409:14;7401:22;;7286:143;;;:::o;7489:1151::-;7668:3;7697:84;7775:5;7697:84;:::i;:::-;7797:116;7906:6;7901:3;7797:116;:::i;:::-;7790:123;;7939:3;7984:4;7976:6;7972:17;7967:3;7963:27;8014:86;8094:5;8014:86;:::i;:::-;8123:7;8154:1;8139:456;8164:6;8161:1;8158:13;8139:456;;;8235:9;8229:4;8225:20;8220:3;8213:33;8286:6;8280:13;8314:124;8433:4;8418:13;8314:124;:::i;:::-;8306:132;;8461:90;8544:6;8461:90;:::i;:::-;8451:100;;8580:4;8575:3;8571:14;8564:21;;8199:396;8186:1;8183;8179:9;8174:14;;8139:456;;;8143:14;8611:4;8604:11;;8631:3;8624:10;;7673:967;;;;;7489:1151;;;;:::o;8692:533::-;8845:4;8840:3;8836:14;8940:4;8933:5;8929:16;8923:23;8959:63;9016:4;9011:3;9007:14;8993:12;8959:63;:::i;:::-;8860:172;9126:4;9119:5;9115:16;9109:23;9145:63;9202:4;9197:3;9193:14;9179:12;9145:63;:::i;:::-;9042:176;8814:411;8692:533;;:::o;9231:930::-;9598:4;9636:3;9625:9;9621:19;9613:27;;9650:123;9770:1;9759:9;9755:17;9746:6;9650:123;:::i;:::-;9820:9;9814:4;9810:20;9805:2;9794:9;9790:18;9783:48;9848:168;10011:4;10002:6;9848:168;:::i;:::-;9840:176;;10026:128;10150:2;10139:9;10135:18;10126:6;10026:128;:::i;:::-;9231:930;;;;;;:::o;10167:118::-;10254:24;10272:5;10254:24;:::i;:::-;10249:3;10242:37;10167:118;;:::o;10291:222::-;10384:4;10422:2;10411:9;10407:18;10399:26;;10435:71;10503:1;10492:9;10488:17;10479:6;10435:71;:::i;:::-;10291:222;;;;:::o;10540:228::-;10610:5;10651:2;10642:6;10637:3;10633:16;10629:25;10626:112;;;10657:79;;:::i;:::-;10626:112;10756:6;10747:15;;10540:228;;;;:::o;10774:77::-;10811:7;10840:5;10829:16;;10774:77;;;:::o;10857:122::-;10930:24;10948:5;10930:24;:::i;:::-;10923:5;10920:35;10910:63;;10969:1;10966;10959:12;10910:63;10857:122;:::o;10985:139::-;11031:5;11069:6;11056:20;11047:29;;11085:33;11112:5;11085:33;:::i;:::-;10985:139;;;;:::o;11130:117::-;11239:1;11236;11229:12;11253:117;11362:1;11359;11352:12;11376:117;11485:1;11482;11475:12;11512:552;11569:8;11579:6;11629:3;11622:4;11614:6;11610:17;11606:27;11596:122;;11637:79;;:::i;:::-;11596:122;11750:6;11737:20;11727:30;;11780:18;11772:6;11769:30;11766:117;;;11802:79;;:::i;:::-;11766:117;11916:4;11908:6;11904:17;11892:29;;11970:3;11962:4;11954:6;11950:17;11940:8;11936:32;11933:41;11930:128;;;11977:79;;:::i;:::-;11930:128;11512:552;;;;;:::o;12070:1357::-;12211:6;12219;12227;12235;12243;12251;12259;12308:3;12296:9;12287:7;12283:23;12279:33;12276:120;;;12315:79;;:::i;:::-;12276:120;12435:1;12460:77;12529:7;12520:6;12509:9;12505:22;12460:77;:::i;:::-;12450:87;;12406:141;12586:2;12612:53;12657:7;12648:6;12637:9;12633:22;12612:53;:::i;:::-;12602:63;;12557:118;12742:3;12731:9;12727:19;12714:33;12774:18;12766:6;12763:30;12760:117;;;12796:79;;:::i;:::-;12760:117;12909:64;12965:7;12956:6;12945:9;12941:22;12909:64;:::i;:::-;12891:82;;;;12685:298;13022:3;13049:53;13094:7;13085:6;13074:9;13070:22;13049:53;:::i;:::-;13039:63;;12993:119;13179:3;13168:9;13164:19;13151:33;13211:18;13203:6;13200:30;13197:117;;;13233:79;;:::i;:::-;13197:117;13346:64;13402:7;13393:6;13382:9;13378:22;13346:64;:::i;:::-;13328:82;;;;13122:298;12070:1357;;;;;;;;;;:::o;13433:89::-;13469:7;13509:6;13502:5;13498:18;13487:29;;13433:89;;;:::o;13528:115::-;13613:23;13630:5;13613:23;:::i;:::-;13608:3;13601:36;13528:115;;:::o;13649:218::-;13740:4;13778:2;13767:9;13763:18;13755:26;;13791:69;13857:1;13846:9;13842:17;13833:6;13791:69;:::i;:::-;13649:218;;;;:::o;13873:149::-;13909:7;13949:66;13942:5;13938:78;13927:89;;13873:149;;;:::o;14028:115::-;14113:23;14130:5;14113:23;:::i;:::-;14108:3;14101:36;14028:115;;:::o;14149:101::-;14185:7;14225:18;14218:5;14214:30;14203:41;;14149:101;;;:::o;14256:115::-;14341:23;14358:5;14341:23;:::i;:::-;14336:3;14329:36;14256:115;;:::o;14377:324::-;14494:4;14532:2;14521:9;14517:18;14509:26;;14545:69;14611:1;14600:9;14596:17;14587:6;14545:69;:::i;:::-;14624:70;14690:2;14679:9;14675:18;14666:6;14624:70;:::i;:::-;14377:324;;;;;:::o;14707:::-;14824:4;14862:2;14851:9;14847:18;14839:26;;14875:69;14941:1;14930:9;14926:17;14917:6;14875:69;:::i;:::-;14954:70;15020:2;15009:9;15005:18;14996:6;14954:70;:::i;:::-;14707:324;;;;;:::o;15037:118::-;15124:24;15142:5;15124:24;:::i;:::-;15119:3;15112:37;15037:118;;:::o;15161:222::-;15254:4;15292:2;15281:9;15277:18;15269:26;;15305:71;15373:1;15362:9;15358:17;15349:6;15305:71;:::i;:::-;15161:222;;;;:::o;15389:619::-;15466:6;15474;15482;15531:2;15519:9;15510:7;15506:23;15502:32;15499:119;;;15537:79;;:::i;:::-;15499:119;15657:1;15682:53;15727:7;15718:6;15707:9;15703:22;15682:53;:::i;:::-;15672:63;;15628:117;15784:2;15810:53;15855:7;15846:6;15835:9;15831:22;15810:53;:::i;:::-;15800:63;;15755:118;15912:2;15938:53;15983:7;15974:6;15963:9;15959:22;15938:53;:::i;:::-;15928:63;;15883:118;15389:619;;;;;:::o;16014:86::-;16049:7;16089:4;16082:5;16078:16;16067:27;;16014:86;;;:::o;16106:112::-;16189:22;16205:5;16189:22;:::i;:::-;16184:3;16177:35;16106:112;;:::o;16224:214::-;16313:4;16351:2;16340:9;16336:18;16328:26;;16364:67;16428:1;16417:9;16413:17;16404:6;16364:67;:::i;:::-;16224:214;;;;:::o;16444:93::-;16480:7;16520:10;16513:5;16509:22;16498:33;;16444:93;;;:::o;16543:120::-;16615:23;16632:5;16615:23;:::i;:::-;16608:5;16605:34;16595:62;;16653:1;16650;16643:12;16595:62;16543:120;:::o;16669:137::-;16714:5;16752:6;16739:20;16730:29;;16768:32;16794:5;16768:32;:::i;:::-;16669:137;;;;:::o;16812:472::-;16879:6;16887;16936:2;16924:9;16915:7;16911:23;16907:32;16904:119;;;16942:79;;:::i;:::-;16904:119;17062:1;17087:52;17131:7;17122:6;17111:9;17107:22;17087:52;:::i;:::-;17077:62;;17033:116;17188:2;17214:53;17259:7;17250:6;17239:9;17235:22;17214:53;:::i;:::-;17204:63;;17159:118;16812:472;;;;;:::o;17290:116::-;17360:21;17375:5;17360:21;:::i;:::-;17353:5;17350:32;17340:60;;17396:1;17393;17386:12;17340:60;17290:116;:::o;17412:133::-;17455:5;17493:6;17480:20;17471:29;;17509:30;17533:5;17509:30;:::i;:::-;17412:133;;;;:::o;17551:686::-;17645:6;17653;17702:2;17690:9;17681:7;17677:23;17673:32;17670:119;;;17708:79;;:::i;:::-;17670:119;17856:1;17845:9;17841:17;17828:31;17886:18;17878:6;17875:30;17872:117;;;17908:79;;:::i;:::-;17872:117;18013:82;18087:7;18078:6;18067:9;18063:22;18013:82;:::i;:::-;18003:92;;17799:306;18144:2;18170:50;18212:7;18203:6;18192:9;18188:22;18170:50;:::i;:::-;18160:60;;18115:115;17551:686;;;;;:::o;18293:524::-;18446:4;18441:3;18437:14;18538:4;18531:5;18527:16;18521:23;18557:63;18614:4;18609:3;18605:14;18591:12;18557:63;:::i;:::-;18461:169;18718:4;18711:5;18707:16;18701:23;18737:63;18794:4;18789:3;18785:14;18771:12;18737:63;:::i;:::-;18640:170;18415:402;18293:524;;:::o;18823:334::-;18972:4;19010:2;18999:9;18995:18;18987:26;;19023:127;19147:1;19136:9;19132:17;19123:6;19023:127;:::i;:::-;18823:334;;;;:::o;19163:120::-;19235:23;19252:5;19235:23;:::i;:::-;19228:5;19225:34;19215:62;;19273:1;19270;19263:12;19215:62;19163:120;:::o;19289:137::-;19334:5;19372:6;19359:20;19350:29;;19388:32;19414:5;19388:32;:::i;:::-;19289:137;;;;:::o;19432:470::-;19498:6;19506;19555:2;19543:9;19534:7;19530:23;19526:32;19523:119;;;19561:79;;:::i;:::-;19523:119;19681:1;19706:52;19750:7;19741:6;19730:9;19726:22;19706:52;:::i;:::-;19696:62;;19652:116;19807:2;19833:52;19877:7;19868:6;19857:9;19853:22;19833:52;:::i;:::-;19823:62;;19778:117;19432:470;;;;;:::o;19908:98::-;19959:6;19993:5;19987:12;19977:22;;19908:98;;;:::o;20012:168::-;20095:11;20129:6;20124:3;20117:19;20169:4;20164:3;20160:14;20145:29;;20012:168;;;;:::o;20186:373::-;20272:3;20300:38;20332:5;20300:38;:::i;:::-;20354:70;20417:6;20412:3;20354:70;:::i;:::-;20347:77;;20433:65;20491:6;20486:3;20479:4;20472:5;20468:16;20433:65;:::i;:::-;20523:29;20545:6;20523:29;:::i;:::-;20518:3;20514:39;20507:46;;20276:283;20186:373;;;;:::o;20565:309::-;20676:4;20714:2;20703:9;20699:18;20691:26;;20763:9;20757:4;20753:20;20749:1;20738:9;20734:17;20727:47;20791:76;20862:4;20853:6;20791:76;:::i;:::-;20783:84;;20565:309;;;;:::o;20880:60::-;20908:3;20929:5;20922:12;;20880:60;;;:::o;20946:142::-;20996:9;21029:53;21047:34;21056:24;21074:5;21056:24;:::i;:::-;21047:34;:::i;:::-;21029:53;:::i;:::-;21016:66;;20946:142;;;:::o;21094:126::-;21144:9;21177:37;21208:5;21177:37;:::i;:::-;21164:50;;21094:126;;;:::o;21226:154::-;21304:9;21337:37;21368:5;21337:37;:::i;:::-;21324:50;;21226:154;;;:::o;21386:187::-;21501:65;21560:5;21501:65;:::i;:::-;21496:3;21489:78;21386:187;;:::o;21579:278::-;21700:4;21738:2;21727:9;21723:18;21715:26;;21751:99;21847:1;21836:9;21832:17;21823:6;21751:99;:::i;:::-;21579:278;;;;:::o;21863:329::-;21922:6;21971:2;21959:9;21950:7;21946:23;21942:32;21939:119;;;21977:79;;:::i;:::-;21939:119;22097:1;22122:53;22167:7;22158:6;22147:9;22143:22;22122:53;:::i;:::-;22112:63;;22068:117;21863:329;;;;:::o;22198:218::-;22289:4;22327:2;22316:9;22312:18;22304:26;;22340:69;22406:1;22395:9;22391:17;22382:6;22340:69;:::i;:::-;22198:218;;;;:::o;22422:867::-;22534:6;22542;22550;22558;22607:3;22595:9;22586:7;22582:23;22578:33;22575:120;;;22614:79;;:::i;:::-;22575:120;22734:1;22759:77;22828:7;22819:6;22808:9;22804:22;22759:77;:::i;:::-;22749:87;;22705:141;22913:2;22902:9;22898:18;22885:32;22944:18;22936:6;22933:30;22930:117;;;22966:79;;:::i;:::-;22930:117;23079:64;23135:7;23126:6;23115:9;23111:22;23079:64;:::i;:::-;23061:82;;;;22856:297;23192:3;23219:53;23264:7;23255:6;23244:9;23240:22;23219:53;:::i;:::-;23209:63;;23163:119;22422:867;;;;;;;:::o;23331:607::-;23443:8;23453:6;23503:3;23496:4;23488:6;23484:17;23480:27;23470:122;;23511:79;;:::i;:::-;23470:122;23624:6;23611:20;23601:30;;23654:18;23646:6;23643:30;23640:117;;;23676:79;;:::i;:::-;23640:117;23790:4;23782:6;23778:17;23766:29;;23844:3;23836:4;23828:6;23824:17;23814:8;23810:32;23807:41;23804:128;;;23851:79;;:::i;:::-;23804:128;23331:607;;;;;:::o;23944:637::-;24069:6;24077;24126:2;24114:9;24105:7;24101:23;24097:32;24094:119;;;24132:79;;:::i;:::-;24094:119;24280:1;24269:9;24265:17;24252:31;24310:18;24302:6;24299:30;24296:117;;;24332:79;;:::i;:::-;24296:117;24445:119;24556:7;24547:6;24536:9;24532:22;24445:119;:::i;:::-;24427:137;;;;24223:351;23944:637;;;;;:::o;24587:327::-;24645:6;24694:2;24682:9;24673:7;24669:23;24665:32;24662:119;;;24700:79;;:::i;:::-;24662:119;24820:1;24845:52;24889:7;24880:6;24869:9;24865:22;24845:52;:::i;:::-;24835:62;;24791:116;24587:327;;;;:::o;24920:118::-;25007:24;25025:5;25007:24;:::i;:::-;25002:3;24995:37;24920:118;;:::o;25044:222::-;25137:4;25175:2;25164:9;25160:18;25152:26;;25188:71;25256:1;25245:9;25241:17;25232:6;25188:71;:::i;:::-;25044:222;;;;:::o;25272:813::-;25358:6;25366;25374;25382;25431:2;25419:9;25410:7;25406:23;25402:32;25399:119;;;25437:79;;:::i;:::-;25399:119;25557:1;25582:52;25626:7;25617:6;25606:9;25602:22;25582:52;:::i;:::-;25572:62;;25528:116;25683:2;25709:52;25753:7;25744:6;25733:9;25729:22;25709:52;:::i;:::-;25699:62;;25654:117;25838:2;25827:9;25823:18;25810:32;25869:18;25861:6;25858:30;25855:117;;;25891:79;;:::i;:::-;25855:117;26004:64;26060:7;26051:6;26040:9;26036:22;26004:64;:::i;:::-;25986:82;;;;25781:297;25272:813;;;;;;;:::o;26121:601::-;26227:8;26237:6;26287:3;26280:4;26272:6;26268:17;26264:27;26254:122;;26295:79;;:::i;:::-;26254:122;26408:6;26395:20;26385:30;;26438:18;26430:6;26427:30;26424:117;;;26460:79;;:::i;:::-;26424:117;26574:4;26566:6;26562:17;26550:29;;26628:3;26620:4;26612:6;26608:17;26598:8;26594:32;26591:41;26588:128;;;26635:79;;:::i;:::-;26588:128;26121:601;;;;;:::o;26728:625::-;26847:6;26855;26904:2;26892:9;26883:7;26879:23;26875:32;26872:119;;;26910:79;;:::i;:::-;26872:119;27058:1;27047:9;27043:17;27030:31;27088:18;27080:6;27077:30;27074:117;;;27110:79;;:::i;:::-;27074:117;27223:113;27328:7;27319:6;27308:9;27304:22;27223:113;:::i;:::-;27205:131;;;;27001:345;26728:625;;;;;:::o;27386:234::-;27462:5;27503:2;27494:6;27489:3;27485:16;27481:25;27478:112;;;27509:79;;:::i;:::-;27478:112;27608:6;27599:15;;27386:234;;;;:::o;27626:898::-;27762:6;27770;27778;27827:3;27815:9;27806:7;27802:23;27798:33;27795:120;;;27834:79;;:::i;:::-;27795:120;27982:1;27971:9;27967:17;27954:31;28012:18;28004:6;28001:30;27998:117;;;28034:79;;:::i;:::-;27998:117;28139:82;28213:7;28204:6;28193:9;28189:22;28139:82;:::i;:::-;28129:92;;27925:306;28270:2;28296:83;28371:7;28362:6;28351:9;28347:22;28296:83;:::i;:::-;28286:93;;28241:148;28428:2;28454:53;28499:7;28490:6;28479:9;28475:22;28454:53;:::i;:::-;28444:63;;28399:118;27626:898;;;;;:::o;28530:108::-;28607:24;28625:5;28607:24;:::i;:::-;28602:3;28595:37;28530:108;;:::o;28644:105::-;28719:23;28736:5;28719:23;:::i;:::-;28714:3;28707:36;28644:105;;:::o;28805:514::-;28948:4;28943:3;28939:14;29040:4;29033:5;29029:16;29023:23;29059:63;29116:4;29111:3;29107:14;29093:12;29059:63;:::i;:::-;28963:169;29220:4;29213:5;29209:16;29203:23;29239:63;29296:4;29291:3;29287:14;29273:12;29239:63;:::i;:::-;29142:170;28917:402;28805:514;;:::o;29383:749::-;29544:4;29539:3;29535:14;29631:4;29624:5;29620:16;29614:23;29650:63;29707:4;29702:3;29698:14;29684:12;29650:63;:::i;:::-;29559:164;29806:4;29799:5;29795:16;29789:23;29825:61;29880:4;29875:3;29871:14;29857:12;29825:61;:::i;:::-;29733:163;29977:4;29970:5;29966:16;29960:23;29996:119;30109:4;30104:3;30100:14;30086:12;29996:119;:::i;:::-;29906:219;29513:619;29383:749;;:::o;30138:574::-;30379:4;30417:3;30406:9;30402:19;30394:27;;30431:135;30563:1;30552:9;30548:17;30539:6;30431:135;:::i;:::-;30576:129;30700:3;30689:9;30685:19;30676:6;30576:129;:::i;:::-;30138:574;;;;;:::o;30718:474::-;30786:6;30794;30843:2;30831:9;30822:7;30818:23;30814:32;30811:119;;;30849:79;;:::i;:::-;30811:119;30969:1;30994:53;31039:7;31030:6;31019:9;31015:22;30994:53;:::i;:::-;30984:63;;30940:117;31096:2;31122:53;31167:7;31158:6;31147:9;31143:22;31122:53;:::i;:::-;31112:63;;31067:118;30718:474;;;;;:::o;31198:377::-;31281:6;31330:2;31318:9;31309:7;31305:23;31301:32;31298:119;;;31336:79;;:::i;:::-;31298:119;31456:1;31481:77;31550:7;31541:6;31530:9;31526:22;31481:77;:::i;:::-;31471:87;;31427:141;31198:377;;;;:::o;31581:180::-;31629:77;31626:1;31619:88;31726:4;31723:1;31716:15;31750:4;31747:1;31740:15;31767:320;31811:6;31848:1;31842:4;31838:12;31828:22;;31895:1;31889:4;31885:12;31916:18;31906:81;;31972:4;31964:6;31960:17;31950:27;;31906:81;32034:2;32026:6;32023:14;32003:18;32000:38;31997:84;;32053:18;;:::i;:::-;31997:84;31818:269;31767:320;;;:::o;32093:143::-;32150:5;32181:6;32175:13;32166:22;;32197:33;32224:5;32197:33;:::i;:::-;32093:143;;;;:::o;32242:351::-;32312:6;32361:2;32349:9;32340:7;32336:23;32332:32;32329:119;;;32367:79;;:::i;:::-;32329:119;32487:1;32512:64;32568:7;32559:6;32548:9;32544:22;32512:64;:::i;:::-;32502:74;;32458:128;32242:351;;;;:::o;32599:143::-;32656:5;32687:6;32681:13;32672:22;;32703:33;32730:5;32703:33;:::i;:::-;32599:143;;;;:::o;32748:351::-;32818:6;32867:2;32855:9;32846:7;32842:23;32838:32;32835:119;;;32873:79;;:::i;:::-;32835:119;32993:1;33018:64;33074:7;33065:6;33054:9;33050:22;33018:64;:::i;:::-;33008:74;;32964:128;32748:351;;;;:::o;33105:180::-;33153:77;33150:1;33143:88;33250:4;33247:1;33240:15;33274:4;33271:1;33264:15;33291:115;33376:23;33393:5;33376:23;:::i;:::-;33371:3;33364:36;33291:115;;:::o;33412:328::-;33531:4;33569:2;33558:9;33554:18;33546:26;;33582:69;33648:1;33637:9;33633:17;33624:6;33582:69;:::i;:::-;33661:72;33729:2;33718:9;33714:18;33705:6;33661:72;:::i;:::-;33412:328;;;;;:::o;33746:281::-;33829:27;33851:4;33829:27;:::i;:::-;33821:6;33817:40;33959:6;33947:10;33944:22;33923:18;33911:10;33908:34;33905:62;33902:88;;;33970:18;;:::i;:::-;33902:88;34010:10;34006:2;33999:22;33789:238;33746:281;;:::o;34033:129::-;34067:6;34094:20;;:::i;:::-;34084:30;;34123:33;34151:4;34143:6;34123:33;:::i;:::-;34033:129;;;:::o;34168:348::-;34282:4;34372:18;34364:6;34361:30;34358:56;;;34394:18;;:::i;:::-;34358:56;34444:4;34436:6;34432:17;34424:25;;34504:4;34498;34494:15;34486:23;;34168:348;;;:::o;34522:117::-;34631:1;34628;34621:12;34645:117;34754:1;34751;34744:12;34768:117;34877:1;34874;34867:12;34891:307;34952:4;35042:18;35034:6;35031:30;35028:56;;;35064:18;;:::i;:::-;35028:56;35102:29;35124:6;35102:29;:::i;:::-;35094:37;;35186:4;35180;35176:15;35168:23;;34891:307;;;:::o;35204:146::-;35301:6;35296:3;35291;35278:30;35342:1;35333:6;35328:3;35324:16;35317:27;35204:146;;;:::o;35356:423::-;35433:5;35458:65;35474:48;35515:6;35474:48;:::i;:::-;35458:65;:::i;:::-;35449:74;;35546:6;35539:5;35532:21;35584:4;35577:5;35573:16;35622:3;35613:6;35608:3;35604:16;35601:25;35598:112;;;35629:79;;:::i;:::-;35598:112;35719:54;35766:6;35761:3;35756;35719:54;:::i;:::-;35439:340;35356:423;;;;;:::o;35798:338::-;35853:5;35902:3;35895:4;35887:6;35883:17;35879:27;35869:122;;35910:79;;:::i;:::-;35869:122;36027:6;36014:20;36052:78;36126:3;36118:6;36111:4;36103:6;36099:17;36052:78;:::i;:::-;36043:87;;35859:277;35798:338;;;;:::o;36176:919::-;36262:5;36306:4;36294:9;36289:3;36285:19;36281:30;36278:117;;;36314:79;;:::i;:::-;36278:117;36413:21;36429:4;36413:21;:::i;:::-;36404:30;;36492:1;36532:48;36576:3;36567:6;36556:9;36552:22;36532:48;:::i;:::-;36525:4;36518:5;36514:16;36507:74;36444:148;36654:2;36695:48;36739:3;36730:6;36719:9;36715:22;36695:48;:::i;:::-;36688:4;36681:5;36677:16;36670:74;36602:153;36845:2;36834:9;36830:18;36817:32;36876:18;36868:6;36865:30;36862:117;;;36898:79;;:::i;:::-;36862:117;37018:58;37072:3;37063:6;37052:9;37048:22;37018:58;:::i;:::-;37011:4;37004:5;37000:16;36993:84;36765:323;36176:919;;;;:::o;37137:1026::-;37270:5;37295:118;37311:101;37405:6;37311:101;:::i;:::-;37295:118;:::i;:::-;37286:127;;37433:5;37462:6;37455:5;37448:21;37496:4;37489:5;37485:16;37478:23;;37549:4;37541:6;37537:17;37529:6;37525:30;37578:3;37570:6;37567:15;37564:122;;;37597:79;;:::i;:::-;37564:122;37712:6;37695:462;37729:6;37724:3;37721:15;37695:462;;;37818:3;37805:17;37854:18;37841:11;37838:35;37835:122;;;37876:79;;:::i;:::-;37835:122;38000:11;37992:6;37988:24;38038:74;38108:3;38096:10;38038:74;:::i;:::-;38033:3;38026:87;38142:4;38137:3;38133:14;38126:21;;37771:386;;37755:4;37750:3;37746:14;37739:21;;37695:462;;;37699:21;37276:887;;37137:1026;;;;;:::o;38169:428::-;38361:9;38460:130;38575:14;38567:6;38560:5;38460:130;:::i;:::-;38438:152;;38169:428;;;;:::o;38603:117::-;38712:1;38709;38702:12;38726:117;38835:1;38832;38825:12;38849:469;38954:9;38965;39003:8;38991:10;38988:24;38985:111;;;39015:79;;:::i;:::-;38985:111;39121:6;39111:8;39108:20;39105:107;;;39131:79;;:::i;:::-;39105:107;39262:1;39250:10;39246:18;39238:6;39234:31;39221:44;;39301:10;39291:8;39287:25;39274:38;;38849:469;;;;;;;:::o;39324:147::-;39425:11;39462:3;39447:18;;39324:147;;;;:::o;39477:386::-;39581:3;39609:38;39641:5;39609:38;:::i;:::-;39663:88;39744:6;39739:3;39663:88;:::i;:::-;39656:95;;39760:65;39818:6;39813:3;39806:4;39799:5;39795:16;39760:65;:::i;:::-;39850:6;39845:3;39841:16;39834:23;;39585:278;39477:386;;;;:::o;39891:327::-;40005:3;40026:88;40107:6;40102:3;40026:88;:::i;:::-;40019:95;;40124:56;40173:6;40168:3;40161:5;40124:56;:::i;:::-;40205:6;40200:3;40196:16;40189:23;;39891:327;;;;;:::o;40224:453::-;40416:3;40438:93;40527:3;40518:6;40438:93;:::i;:::-;40431:100;;40548:103;40647:3;40638:6;40630;40548:103;:::i;:::-;40541:110;;40668:3;40661:10;;40224:453;;;;;;:::o;40705:314::-;40801:3;40822:70;40885:6;40880:3;40822:70;:::i;:::-;40815:77;;40902:56;40951:6;40946:3;40939:5;40902:56;:::i;:::-;40983:29;41005:6;40983:29;:::i;:::-;40978:3;40974:39;40967:46;;40705:314;;;;;:::o;41025:329::-;41146:4;41184:2;41173:9;41169:18;41161:26;;41233:9;41227:4;41223:20;41219:1;41208:9;41204:17;41197:47;41261:86;41342:4;41333:6;41325;41261:86;:::i;:::-;41253:94;;41025:329;;;;;:::o;41360:180::-;41408:77;41405:1;41398:88;41505:4;41502:1;41495:15;41529:4;41526:1;41519:15;41546:117;41655:1;41652;41645:12;41669:117;41778:1;41775;41768:12;41792:117;41901:1;41898;41891:12;41915:401;42014:4;42068:11;42055:25;42170:1;42162:6;42158:14;42147:8;42131:14;42127:29;42123:50;42103:18;42099:75;42089:170;;42178:79;;:::i;:::-;42089:170;42290:18;42280:8;42276:33;42268:41;;42019:297;41915:401;;;;:::o;42322:724::-;42399:4;42405:6;42461:11;42448:25;42561:1;42555:4;42551:12;42540:8;42524:14;42520:29;42516:48;42496:18;42492:73;42482:168;;42569:79;;:::i;:::-;42482:168;42681:18;42671:8;42667:33;42659:41;;42733:4;42720:18;42710:28;;42761:18;42753:6;42750:30;42747:117;;;42783:79;;:::i;:::-;42747:117;42891:2;42885:4;42881:13;42873:21;;42948:4;42940:6;42936:17;42920:14;42916:38;42910:4;42906:49;42903:136;;;42958:79;;:::i;:::-;42903:136;42412:634;42322:724;;;;;:::o;43052:120::-;43103:5;43128:38;43162:2;43157:3;43153:12;43148:3;43128:38;:::i;:::-;43119:47;;43052:120;;;;:::o;43178:105::-;43253:23;43270:5;43253:23;:::i;:::-;43248:3;43241:36;43178:105;;:::o;43289:122::-;43341:5;43366:39;43401:2;43396:3;43392:12;43387:3;43366:39;:::i;:::-;43357:48;;43289:122;;;;:::o;43417:120::-;43489:23;43506:5;43489:23;:::i;:::-;43482:5;43479:34;43469:62;;43527:1;43524;43517:12;43469:62;43417:120;:::o;43543:137::-;43588:5;43626:6;43613:20;43604:29;;43642:32;43668:5;43642:32;:::i;:::-;43543:137;;;;:::o;43686:120::-;43737:5;43762:38;43796:2;43791:3;43787:12;43782:3;43762:38;:::i;:::-;43753:47;;43686:120;;;;:::o;43850:757::-;43993:4;43988:3;43984:14;44065:49;44108:4;44101:5;44097:16;44090:5;44065:49;:::i;:::-;44127:61;44182:4;44177:3;44173:14;44159:12;44127:61;:::i;:::-;44008:190;44265:50;44309:4;44302:5;44298:16;44291:5;44265:50;:::i;:::-;44328:63;44385:4;44380:3;44376:14;44362:12;44328:63;:::i;:::-;44208:193;44467:49;44510:4;44503:5;44499:16;44492:5;44467:49;:::i;:::-;44529:61;44584:4;44579:3;44575:14;44561:12;44529:61;:::i;:::-;44411:189;43962:645;43850:757;;:::o;44613:972::-;44920:4;44958:3;44947:9;44943:19;44935:27;;44972:117;45086:1;45075:9;45071:17;45062:6;44972:117;:::i;:::-;45099:72;45167:2;45156:9;45152:18;45143:6;45099:72;:::i;:::-;45219:9;45213:4;45209:20;45203:3;45192:9;45188:19;45181:49;45247:86;45328:4;45319:6;45311;45247:86;:::i;:::-;45239:94;;45343:73;45411:3;45400:9;45396:19;45387:6;45343:73;:::i;:::-;45464:9;45458:4;45454:20;45448:3;45437:9;45433:19;45426:49;45492:86;45573:4;45564:6;45556;45492:86;:::i;:::-;45484:94;;44613:972;;;;;;;;;;:::o;45591:432::-;45679:5;45704:65;45720:48;45761:6;45720:48;:::i;:::-;45704:65;:::i;:::-;45695:74;;45792:6;45785:5;45778:21;45830:4;45823:5;45819:16;45868:3;45859:6;45854:3;45850:16;45847:25;45844:112;;;45875:79;;:::i;:::-;45844:112;45965:52;46010:6;46005:3;46000;45965:52;:::i;:::-;45685:338;45591:432;;;;;:::o;46042:353::-;46108:5;46157:3;46150:4;46142:6;46138:17;46134:27;46124:122;;46165:79;;:::i;:::-;46124:122;46275:6;46269:13;46300:89;46385:3;46377:6;46370:4;46362:6;46358:17;46300:89;:::i;:::-;46291:98;;46114:281;46042:353;;;;:::o;46401:522::-;46480:6;46529:2;46517:9;46508:7;46504:23;46500:32;46497:119;;;46535:79;;:::i;:::-;46497:119;46676:1;46665:9;46661:17;46655:24;46706:18;46698:6;46695:30;46692:117;;;46728:79;;:::i;:::-;46692:117;46833:73;46898:7;46889:6;46878:9;46874:22;46833:73;:::i;:::-;46823:83;;46626:290;46401:522;;;;:::o;46929:332::-;47050:4;47088:2;47077:9;47073:18;47065:26;;47101:71;47169:1;47158:9;47154:17;47145:6;47101:71;:::i;:::-;47182:72;47250:2;47239:9;47235:18;47226:6;47182:72;:::i;:::-;46929:332;;;;;:::o;47267:218::-;47358:4;47396:2;47385:9;47381:18;47373:26;;47409:69;47475:1;47464:9;47460:17;47451:6;47409:69;:::i;:::-;47267:218;;;;:::o;47491:327::-;47549:6;47598:2;47586:9;47577:7;47573:23;47569:32;47566:119;;;47604:79;;:::i;:::-;47566:119;47724:1;47749:52;47793:7;47784:6;47773:9;47769:22;47749:52;:::i;:::-;47739:62;;47695:116;47491:327;;;;:::o;47824:85::-;47869:7;47898:5;47887:16;;47824:85;;;:::o;47915:156::-;47972:9;48005:60;48022:42;48031:32;48057:5;48031:32;:::i;:::-;48022:42;:::i;:::-;48005:60;:::i;:::-;47992:73;;47915:156;;;:::o;48077:145::-;48171:44;48209:5;48171:44;:::i;:::-;48166:3;48159:57;48077:145;;:::o;48228:654::-;48430:4;48468:3;48457:9;48453:19;48445:27;;48482:71;48550:1;48539:9;48535:17;48526:6;48482:71;:::i;:::-;48563:72;48631:2;48620:9;48616:18;48607:6;48563:72;:::i;:::-;48645:79;48720:2;48709:9;48705:18;48696:6;48645:79;:::i;:::-;48771:9;48765:4;48761:20;48756:2;48745:9;48741:18;48734:48;48799:76;48870:4;48861:6;48799:76;:::i;:::-;48791:84;;48228:654;;;;;;;:::o;48888:328::-;49007:4;49045:2;49034:9;49030:18;49022:26;;49058:69;49124:1;49113:9;49109:17;49100:6;49058:69;:::i;:::-;49137:72;49205:2;49194:9;49190:18;49181:6;49137:72;:::i;:::-;48888:328;;;;;:::o;49222:442::-;49371:4;49409:2;49398:9;49394:18;49386:26;;49422:71;49490:1;49479:9;49475:17;49466:6;49422:71;:::i;:::-;49503:72;49571:2;49560:9;49556:18;49547:6;49503:72;:::i;:::-;49585;49653:2;49642:9;49638:18;49629:6;49585:72;:::i;:::-;49222:442;;;;;;:::o;49670:506::-;49827:4;49865:2;49854:9;49850:18;49842:26;;49914:9;49908:4;49904:20;49900:1;49889:9;49885:17;49878:47;49942:76;50013:4;50004:6;49942:76;:::i;:::-;49934:84;;50065:9;50059:4;50055:20;50050:2;50039:9;50035:18;50028:48;50093:76;50164:4;50155:6;50093:76;:::i;:::-;50085:84;;49670:506;;;;;:::o;50182:137::-;50236:5;50267:6;50261:13;50252:22;;50283:30;50307:5;50283:30;:::i;:::-;50182:137;;;;:::o;50325:345::-;50392:6;50441:2;50429:9;50420:7;50416:23;50412:32;50409:119;;;50447:79;;:::i;:::-;50409:119;50567:1;50592:61;50645:7;50636:6;50625:9;50621:22;50592:61;:::i;:::-;50582:71;;50538:125;50325:345;;;;:::o;50676:158::-;50749:11;50783:6;50778:3;50771:19;50823:4;50818:3;50814:14;50799:29;;50676:158;;;;:::o;50840:353::-;50916:3;50944:38;50976:5;50944:38;:::i;:::-;50998:60;51051:6;51046:3;50998:60;:::i;:::-;50991:67;;51067:65;51125:6;51120:3;51113:4;51106:5;51102:16;51067:65;:::i;:::-;51157:29;51179:6;51157:29;:::i;:::-;51152:3;51148:39;51141:46;;50920:273;50840:353;;;;:::o;51199:99::-;51270:21;51285:5;51270:21;:::i;:::-;51265:3;51258:34;51199:99;;:::o;51360:1219::-;51491:3;51527:4;51522:3;51518:14;51616:4;51609:5;51605:16;51599:23;51635:61;51690:4;51685:3;51681:14;51667:12;51635:61;:::i;:::-;51542:164;51792:4;51785:5;51781:16;51775:23;51811:63;51868:4;51863:3;51859:14;51845:12;51811:63;:::i;:::-;51716:168;51969:4;51962:5;51958:16;51952:23;52022:3;52016:4;52012:14;52005:4;52000:3;51996:14;51989:38;52048:71;52114:4;52100:12;52048:71;:::i;:::-;52040:79;;51894:236;52215:4;52208:5;52204:16;52198:23;52268:3;52262:4;52258:14;52251:4;52246:3;52242:14;52235:38;52294:71;52360:4;52346:12;52294:71;:::i;:::-;52286:79;;52140:236;52466:4;52459:5;52455:16;52449:23;52485:57;52536:4;52531:3;52527:14;52513:12;52485:57;:::i;:::-;52386:166;52569:4;52562:11;;51496:1083;51360:1219;;;;:::o;52585:507::-;52768:4;52806:2;52795:9;52791:18;52783:26;;52855:9;52849:4;52845:20;52841:1;52830:9;52826:17;52819:47;52883:120;52998:4;52989:6;52883:120;:::i;:::-;52875:128;;53013:72;53081:2;53070:9;53066:18;53057:6;53013:72;:::i;:::-;52585:507;;;;;:::o;53125:621::-;53213:5;53257:4;53245:9;53240:3;53236:19;53232:30;53229:117;;;53265:79;;:::i;:::-;53229:117;53364:21;53380:4;53364:21;:::i;:::-;53355:30;;53449:1;53489:60;53545:3;53536:6;53525:9;53521:22;53489:60;:::i;:::-;53482:4;53475:5;53471:16;53464:86;53395:166;53626:2;53667:60;53723:3;53714:6;53703:9;53699:22;53667:60;:::i;:::-;53660:4;53653:5;53649:16;53642:86;53571:168;53125:621;;;;:::o;53752:407::-;53850:6;53899:2;53887:9;53878:7;53874:23;53870:32;53867:119;;;53905:79;;:::i;:::-;53867:119;54025:1;54050:92;54134:7;54125:6;54114:9;54110:22;54050:92;:::i;:::-;54040:102;;53996:156;53752:407;;;;:::o;54165:140::-;54213:4;54236:3;54228:11;;54259:3;54256:1;54249:14;54293:4;54290:1;54280:18;54272:26;;54165:140;;;:::o;54311:93::-;54348:6;54395:2;54390;54383:5;54379:14;54375:23;54365:33;;54311:93;;;:::o;54410:107::-;54454:8;54504:5;54498:4;54494:16;54473:37;;54410:107;;;;:::o;54523:393::-;54592:6;54642:1;54630:10;54626:18;54665:97;54695:66;54684:9;54665:97;:::i;:::-;54783:39;54813:8;54802:9;54783:39;:::i;:::-;54771:51;;54855:4;54851:9;54844:5;54840:21;54831:30;;54904:4;54894:8;54890:19;54883:5;54880:30;54870:40;;54599:317;;54523:393;;;;;:::o;54922:142::-;54972:9;55005:53;55023:34;55032:24;55050:5;55032:24;:::i;:::-;55023:34;:::i;:::-;55005:53;:::i;:::-;54992:66;;54922:142;;;:::o;55070:75::-;55113:3;55134:5;55127:12;;55070:75;;;:::o;55151:269::-;55261:39;55292:7;55261:39;:::i;:::-;55322:91;55371:41;55395:16;55371:41;:::i;:::-;55363:6;55356:4;55350:11;55322:91;:::i;:::-;55316:4;55309:105;55227:193;55151:269;;;:::o;55426:73::-;55471:3;55426:73;:::o;55505:189::-;55582:32;;:::i;:::-;55623:65;55681:6;55673;55667:4;55623:65;:::i;:::-;55558:136;55505:189;;:::o;55700:186::-;55760:120;55777:3;55770:5;55767:14;55760:120;;;55831:39;55868:1;55861:5;55831:39;:::i;:::-;55804:1;55797:5;55793:13;55784:22;;55760:120;;;55700:186;;:::o;55892:541::-;55992:2;55987:3;55984:11;55981:445;;;56026:37;56057:5;56026:37;:::i;:::-;56109:29;56127:10;56109:29;:::i;:::-;56099:8;56095:44;56292:2;56280:10;56277:18;56274:49;;;56313:8;56298:23;;56274:49;56336:80;56392:22;56410:3;56392:22;:::i;:::-;56382:8;56378:37;56365:11;56336:80;:::i;:::-;55996:430;;55981:445;55892:541;;;:::o;56439:117::-;56493:8;56543:5;56537:4;56533:16;56512:37;;56439:117;;;;:::o;56562:169::-;56606:6;56639:51;56687:1;56683:6;56675:5;56672:1;56668:13;56639:51;:::i;:::-;56635:56;56720:4;56714;56710:15;56700:25;;56613:118;56562:169;;;;:::o;56736:295::-;56812:4;56958:29;56983:3;56977:4;56958:29;:::i;:::-;56950:37;;57020:3;57017:1;57013:11;57007:4;57004:21;56996:29;;56736:295;;;;:::o;57036:1390::-;57151:36;57183:3;57151:36;:::i;:::-;57252:18;57244:6;57241:30;57238:56;;;57274:18;;:::i;:::-;57238:56;57318:38;57350:4;57344:11;57318:38;:::i;:::-;57403:66;57462:6;57454;57448:4;57403:66;:::i;:::-;57496:1;57520:4;57507:17;;57552:2;57544:6;57541:14;57569:1;57564:617;;;;58225:1;58242:6;58239:77;;;58291:9;58286:3;58282:19;58276:26;58267:35;;58239:77;58342:67;58402:6;58395:5;58342:67;:::i;:::-;58336:4;58329:81;58198:222;57534:886;;57564:617;57616:4;57612:9;57604:6;57600:22;57650:36;57681:4;57650:36;:::i;:::-;57708:1;57722:208;57736:7;57733:1;57730:14;57722:208;;;57815:9;57810:3;57806:19;57800:26;57792:6;57785:42;57866:1;57858:6;57854:14;57844:24;;57913:2;57902:9;57898:18;57885:31;;57759:4;57756:1;57752:12;57747:17;;57722:208;;;57958:6;57949:7;57946:19;57943:179;;;58016:9;58011:3;58007:19;58001:26;58059:48;58101:4;58093:6;58089:17;58078:9;58059:48;:::i;:::-;58051:6;58044:64;57966:156;57943:179;58168:1;58164;58156:6;58152:14;58148:22;58142:4;58135:36;57571:610;;;57534:886;;57126:1300;;;57036:1390;;:::o;58432:151::-;58536:6;58570:5;58564:12;58554:22;;58432:151;;;:::o;58589:221::-;58725:11;58759:6;58754:3;58747:19;58799:4;58794:3;58790:14;58775:29;;58589:221;;;;:::o;58816:169::-;58920:4;58943:3;58935:11;;58973:4;58968:3;58964:14;58956:22;;58816:169;;;:::o;58991:105::-;59066:23;59083:5;59066:23;:::i;:::-;59061:3;59054:36;58991:105;;:::o;59166:793::-;59299:3;59335:4;59330:3;59326:14;59421:4;59414:5;59410:16;59404:23;59440:61;59495:4;59490:3;59486:14;59472:12;59440:61;:::i;:::-;59350:161;59596:4;59589:5;59585:16;59579:23;59615:61;59670:4;59665:3;59661:14;59647:12;59615:61;:::i;:::-;59521:165;59771:4;59764:5;59760:16;59754:23;59824:3;59818:4;59814:14;59807:4;59802:3;59798:14;59791:38;59850:71;59916:4;59902:12;59850:71;:::i;:::-;59842:79;;59696:236;59949:4;59942:11;;59304:655;59166:793;;;;:::o;59965:304::-;60108:10;60143:120;60259:3;60251:6;60143:120;:::i;:::-;60129:134;;59965:304;;;;:::o;60275:150::-;60382:4;60414;60409:3;60405:14;60397:22;;60275:150;;;:::o;60499:1207::-;60692:3;60721:91;60806:5;60721:91;:::i;:::-;60828:123;60944:6;60939:3;60828:123;:::i;:::-;60821:130;;60977:3;61022:4;61014:6;61010:17;61005:3;61001:27;61052:93;61139:5;61052:93;:::i;:::-;61168:7;61199:1;61184:477;61209:6;61206:1;61203:13;61184:477;;;61280:9;61274:4;61270:20;61265:3;61258:33;61331:6;61325:13;61359:138;61492:4;61477:13;61359:138;:::i;:::-;61351:146;;61520:97;61610:6;61520:97;:::i;:::-;61510:107;;61646:4;61641:3;61637:14;61630:21;;61244:417;61231:1;61228;61224:9;61219:14;;61184:477;;;61188:14;61677:4;61670:11;;61697:3;61690:10;;60697:1009;;;;;60499:1207;;;;:::o;61712:521::-;61929:4;61967:2;61956:9;61952:18;61944:26;;62016:9;62010:4;62006:20;62002:1;61991:9;61987:17;61980:47;62044:182;62221:4;62212:6;62044:182;:::i;:::-;62036:190;;61712:521;;;;:::o;62266:588::-;62343:5;62387:4;62375:9;62370:3;62366:19;62362:30;62359:117;;;62395:79;;:::i;:::-;62359:117;62494:21;62510:4;62494:21;:::i;:::-;62485:30;;62579:1;62619:49;62664:3;62655:6;62644:9;62640:22;62619:49;:::i;:::-;62612:4;62605:5;62601:16;62594:75;62525:155;62745:2;62786:49;62831:3;62822:6;62811:9;62807:22;62786:49;:::i;:::-;62779:4;62772:5;62768:16;62761:75;62690:157;62266:588;;;;:::o;62860:385::-;62947:6;62996:2;62984:9;62975:7;62971:23;62967:32;62964:119;;;63002:79;;:::i;:::-;62964:119;63122:1;63147:81;63220:7;63211:6;63200:9;63196:22;63147:81;:::i;:::-;63137:91;;63093:145;62860:385;;;;:::o;63251:438::-;63398:4;63436:2;63425:9;63421:18;63413:26;;63449:69;63515:1;63504:9;63500:17;63491:6;63449:69;:::i;:::-;63528:72;63596:2;63585:9;63581:18;63572:6;63528:72;:::i;:::-;63610;63678:2;63667:9;63663:18;63654:6;63610:72;:::i;:::-;63251:438;;;;;;:::o;63695:180::-;63743:77;63740:1;63733:88;63840:4;63837:1;63830:15;63864:4;63861:1;63854:15;63881:180;63929:77;63926:1;63919:88;64026:4;64023:1;64016:15;64050:4;64047:1;64040:15;64067:185;64107:1;64124:20;64142:1;64124:20;:::i;:::-;64119:25;;64158:20;64176:1;64158:20;:::i;:::-;64153:25;;64197:1;64187:35;;64202:18;;:::i;:::-;64187:35;64244:1;64241;64237:9;64232:14;;64067:185;;;;:::o;64258:410::-;64298:7;64321:20;64339:1;64321:20;:::i;:::-;64316:25;;64355:20;64373:1;64355:20;:::i;:::-;64350:25;;64410:1;64407;64403:9;64432:30;64450:11;64432:30;:::i;:::-;64421:41;;64611:1;64602:7;64598:15;64595:1;64592:22;64572:1;64565:9;64545:83;64522:139;;64641:18;;:::i;:::-;64522:139;64306:362;64258:410;;;;:::o;64674:96::-;64732:6;64760:3;64750:13;;64674:96;;;;:::o;64868:552::-;64959:5;64990:45;65031:3;65024:5;64990:45;:::i;:::-;65060:5;65084:41;65115:8;65102:22;65084:41;:::i;:::-;65075:50;;65149:2;65141:6;65138:14;65135:278;;;65220:169;65305:66;65275:6;65271:2;65267:15;65264:1;65260:23;65220:169;:::i;:::-;65197:5;65176:227;65167:236;;65135:278;64965:455;;64868:552;;;;:::o;65426:149::-;65462:7;65502:66;65495:5;65491:78;65480:89;;65426:149;;;:::o;65581:548::-;65671:5;65702:45;65743:3;65736:5;65702:45;:::i;:::-;65772:5;65796:40;65826:8;65813:22;65796:40;:::i;:::-;65787:49;;65860:1;65852:6;65849:13;65846:276;;;65930:168;66014:66;65984:6;65981:1;65977:14;65974:1;65970:22;65930:168;:::i;:::-;65907:5;65886:226;65877:235;;65846:276;65677:452;;65581:548;;;;:::o;66135:96::-;66169:8;66218:5;66213:3;66209:15;66188:36;;66135:96;;;:::o;66237:94::-;66275:7;66304:21;66319:5;66304:21;:::i;:::-;66293:32;;66237:94;;;:::o;66337:153::-;66440:43;66459:23;66476:5;66459:23;:::i;:::-;66440:43;:::i;:::-;66435:3;66428:56;66337:153;;:::o;66496:96::-;66530:8;66579:5;66574:3;66570:15;66549:36;;66496:96;;;:::o;66598:94::-;66636:7;66665:21;66680:5;66665:21;:::i;:::-;66654:32;;66598:94;;;:::o;66698:153::-;66801:43;66820:23;66837:5;66820:23;:::i;:::-;66801:43;:::i;:::-;66796:3;66789:56;66698:153;;:::o;66857:79::-;66896:7;66925:5;66914:16;;66857:79;;;:::o;66942:157::-;67047:45;67067:24;67085:5;67067:24;:::i;:::-;67047:45;:::i;:::-;67042:3;67035:58;66942:157;;:::o;67105:684::-;67315:3;67330:73;67399:3;67390:6;67330:73;:::i;:::-;67428:1;67423:3;67419:11;67412:18;;67440:73;67509:3;67500:6;67440:73;:::i;:::-;67538:1;67533:3;67529:11;67522:18;;67550:75;67621:3;67612:6;67550:75;:::i;:::-;67650:2;67645:3;67641:12;67634:19;;67670:93;67759:3;67750:6;67670:93;:::i;:::-;67663:100;;67780:3;67773:10;;67105:684;;;;;;;:::o;67795:191::-;67835:3;67854:20;67872:1;67854:20;:::i;:::-;67849:25;;67888:20;67906:1;67888:20;:::i;:::-;67883:25;;67931:1;67928;67924:9;67917:16;;67952:3;67949:1;67946:10;67943:36;;;67959:18;;:::i;:::-;67943:36;67795:191;;;;:::o;67992:79::-;68031:7;68060:5;68049:16;;67992:79;;;:::o;68077:157::-;68182:45;68202:24;68220:5;68202:24;:::i;:::-;68182:45;:::i;:::-;68177:3;68170:58;68077:157;;:::o;68240:392::-;68378:3;68393:75;68464:3;68455:6;68393:75;:::i;:::-;68493:2;68488:3;68484:12;68477:19;;68506:73;68575:3;68566:6;68506:73;:::i;:::-;68604:1;68599:3;68595:11;68588:18;;68623:3;68616:10;;68240:392;;;;;:::o;68638:689::-;68850:3;68865:75;68936:3;68927:6;68865:75;:::i;:::-;68965:2;68960:3;68956:12;68949:19;;68978:73;69047:3;69038:6;68978:73;:::i;:::-;69076:1;69071:3;69067:11;69060:18;;69088:75;69159:3;69150:6;69088:75;:::i;:::-;69188:2;69183:3;69179:12;69172:19;;69208:93;69297:3;69288:6;69208:93;:::i;:::-;69201:100;;69318:3;69311:10;;68638:689;;;;;;;:::o;69333:143::-;69390:5;69421:6;69415:13;69406:22;;69437:33;69464:5;69437:33;:::i;:::-;69333:143;;;;:::o;69482:141::-;69538:5;69569:6;69563:13;69554:22;;69585:32;69611:5;69585:32;:::i;:::-;69482:141;;;;:::o;69660:813::-;69752:5;69796:4;69784:9;69779:3;69775:19;69771:30;69768:117;;;69804:79;;:::i;:::-;69768:117;69903:21;69919:4;69903:21;:::i;:::-;69894:30;;69983:1;70023:60;70079:3;70070:6;70059:9;70055:22;70023:60;:::i;:::-;70016:4;70009:5;70005:16;69998:86;69934:161;70155:2;70196:59;70251:3;70242:6;70231:9;70227:22;70196:59;:::i;:::-;70189:4;70182:5;70178:16;70171:85;70105:162;70325:2;70366:88;70450:3;70441:6;70430:9;70426:22;70366:88;:::i;:::-;70359:4;70352:5;70348:16;70341:114;70277:189;69660:813;;;;:::o;70479:416::-;70581:6;70630:3;70618:9;70609:7;70605:23;70601:33;70598:120;;;70637:79;;:::i;:::-;70598:120;70757:1;70782:96;70870:7;70861:6;70850:9;70846:22;70782:96;:::i;:::-;70772:106;;70728:160;70479:416;;;;:::o;70901:442::-;71050:4;71088:2;71077:9;71073:18;71065:26;;71101:71;71169:1;71158:9;71154:17;71145:6;71101:71;:::i;:::-;71182:72;71250:2;71239:9;71235:18;71226:6;71182:72;:::i;:::-;71264;71332:2;71321:9;71317:18;71308:6;71264:72;:::i;:::-;70901:442;;;;;;:::o"
},
"Assembly": ".code\n PUSH C0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 40\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n MSTORE \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n CALLVALUE \t\t\tconstructor(\\r\\n string...\n DUP1 \t\t\tconstructor(\\r\\n string...\n ISZERO \t\t\tconstructor(\\r\\n string...\n PUSH [tag] 1\t\t\tconstructor(\\r\\n string...\n JUMPI \t\t\tconstructor(\\r\\n string...\n PUSH 0\t\t\tconstructor(\\r\\n string...\n DUP1 \t\t\tconstructor(\\r\\n string...\n REVERT \t\t\tconstructor(\\r\\n string...\ntag 1\t\t\tconstructor(\\r\\n string...\n JUMPDEST \t\t\tconstructor(\\r\\n string...\n POP \t\t\tconstructor(\\r\\n string...\n PUSH 40\t\t\tconstructor(\\r\\n string...\n MLOAD \t\t\tconstructor(\\r\\n string...\n PUSHSIZE \t\t\tconstructor(\\r\\n string...\n CODESIZE \t\t\tconstructor(\\r\\n string...\n SUB \t\t\tconstructor(\\r\\n string...\n DUP1 \t\t\tconstructor(\\r\\n string...\n PUSHSIZE \t\t\tconstructor(\\r\\n string...\n DUP4 \t\t\tconstructor(\\r\\n string...\n CODECOPY \t\t\tconstructor(\\r\\n string...\n DUP2 \t\t\tconstructor(\\r\\n string...\n DUP2 \t\t\tconstructor(\\r\\n string...\n ADD \t\t\tconstructor(\\r\\n string...\n PUSH 40\t\t\tconstructor(\\r\\n string...\n MSTORE \t\t\tconstructor(\\r\\n string...\n DUP2 \t\t\tconstructor(\\r\\n string...\n ADD \t\t\tconstructor(\\r\\n string...\n SWAP1 \t\t\tconstructor(\\r\\n string...\n PUSH [tag] 2\t\t\tconstructor(\\r\\n string...\n SWAP2 \t\t\tconstructor(\\r\\n string...\n SWAP1 \t\t\tconstructor(\\r\\n string...\n PUSH [tag] 3\t\t\tconstructor(\\r\\n string...\n JUMP \t\t\tconstructor(\\r\\n string...\ntag 2\t\t\tconstructor(\\r\\n string...\n JUMPDEST \t\t\tconstructor(\\r\\n string...\n DUP5 \t\t\t_name\n DUP5 \t\t\t_symbol\n DUP4 \t\t\t_lzEndpoint\n DUP4 \t\t\t_delegate\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 7\t\t\t\n PUSH [tag] 8\t\t\t\n PUSH 20\t\t\t\n SHL \t\t\t\n PUSH 20\t\t\t\n SHR \t\t\t\n JUMP \t\t\t\ntag 7\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n DUP14 \t\t\t_delegate\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 14\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 1E4FBDF700000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 15\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 16\t\t\t\n JUMP \t\t\t\ntag 15\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\ntag 14\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 17\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 18\t\t\t\n PUSH 20\t\t\t\n SHL \t\t\t\n PUSH 20\t\t\t\n SHR \t\t\t\n JUMP \t\t\t\ntag 17\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 80\t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 20\t\t\t\n JUMPI \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH B586360400000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\ntag 20\t\t\t\n JUMPDEST \t\t\t\n PUSH 80\t\t\t\n MLOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH CA5EB5E1\t\t\t\n DUP3 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 21\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 16\t\t\t\n JUMP \t\t\t\ntag 21\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n DUP8 \t\t\t\n DUP1 \t\t\t\n EXTCODESIZE \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 22\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\ntag 22\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n GAS \t\t\t\n CALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 24\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\ntag 24\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 27\t\t\t\n PUSH [tag] 28\t\t\t\n PUSH 20\t\t\t\n SHL \t\t\t\n PUSH 20\t\t\t\n SHR \t\t\t\n JUMP \t\t\t\ntag 27\t\t\t\n JUMPDEST \t\t\t\n PUSH FF\t\t\t\n AND \t\t\t\n DUP4 \t\t\t\n PUSH FF\t\t\t\n AND \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 29\t\t\t\n JUMPI \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 1E9714B000000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\ntag 29\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 30\t\t\t\n PUSH [tag] 28\t\t\t\n PUSH 20\t\t\t\n SHL \t\t\t\n PUSH 20\t\t\t\n SHR \t\t\t\n JUMP \t\t\t\ntag 30\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 31\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 32\t\t\t\n JUMP \t\t\t\ntag 31\t\t\t\n JUMPDEST \t\t\t\n PUSH A\t\t\t\n PUSH [tag] 33\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 34\t\t\t\n JUMP \t\t\t\ntag 33\t\t\t\n JUMPDEST \t\t\t\n PUSH A0\t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n PUSH 8\t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n PUSH [tag] 36\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 37\t\t\t\n JUMP \t\t\t\ntag 36\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n PUSH 9\t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n PUSH [tag] 38\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 37\t\t\t\n JUMP \t\t\t\ntag 38\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\ttialSupply * 10 ** decimals())...\n POP \t\t\ttialSupply * 10 ** decimals())...\n POP \t\t\ttialSupply * 10 ** decimals())...\n POP \t\t\ttialSupply * 10 ** decimals())...\n PUSH [tag] 41\t\t\t_mint(_delegate, _initialSuppl...\n DUP2 \t\t\t_delegate\n PUSH [tag] 42\t\t\tdecimals()\n PUSH [tag] 8\t\t\tdecimals\n PUSH 20\t\t\tdecimals\n SHL \t\t\tdecimals\n PUSH 20\t\t\tdecimals()\n SHR \t\t\tdecimals()\n JUMP \t\t\tdecimals()\ntag 42\t\t\tdecimals()\n JUMPDEST \t\t\tdecimals()\n PUSH A\t\t\t10\n PUSH [tag] 43\t\t\t10 ** decimals()\n SWAP2 \t\t\t10 ** decimals()\n SWAP1 \t\t\t10 ** decimals()\n PUSH [tag] 34\t\t\t10 ** decimals()\n JUMP \t\t\t10 ** decimals()\ntag 43\t\t\t10 ** decimals()\n JUMPDEST \t\t\t10 ** decimals()\n DUP6 \t\t\t_initialSupply\n PUSH [tag] 44\t\t\t_initialSupply * 10 ** decimal...\n SWAP2 \t\t\t_initialSupply * 10 ** decimal...\n SWAP1 \t\t\t_initialSupply * 10 ** decimal...\n PUSH [tag] 45\t\t\t_initialSupply * 10 ** decimal...\n JUMP \t\t\t_initialSupply * 10 ** decimal...\ntag 44\t\t\t_initialSupply * 10 ** decimal...\n JUMPDEST \t\t\t_initialSupply * 10 ** decimal...\n PUSH [tag] 46\t\t\t_mint\n PUSH 20\t\t\t_mint\n SHL \t\t\t_mint\n PUSH 20\t\t\t_mint(_delegate, _initialSuppl...\n SHR \t\t\t_mint(_delegate, _initialSuppl...\n JUMP \t\t\t_mint(_delegate, _initialSuppl...\ntag 41\t\t\t_mint(_delegate, _initialSuppl...\n JUMPDEST \t\t\t_mint(_delegate, _initialSuppl...\n POP \t\t\tconstructor(\\r\\n string...\n POP \t\t\tconstructor(\\r\\n string...\n POP \t\t\tconstructor(\\r\\n string...\n POP \t\t\tconstructor(\\r\\n string...\n POP \t\t\tconstructor(\\r\\n string...\n PUSH [tag] 47\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\ntag 8\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 12\t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\ntag 18\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n SWAP1 \t\t\t\n DIV \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n DUP2 \t\t\t\n SLOAD \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n MUL \t\t\t\n NOT \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n MUL \t\t\t\n OR \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 28\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 6\t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\ntag 46\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 52\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH EC442F0500000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 53\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 16\t\t\t\n JUMP \t\t\t\ntag 53\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\ntag 52\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 54\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 55\t\t\t\n PUSH 20\t\t\t\n SHL \t\t\t\n PUSH 20\t\t\t\n SHR \t\t\t\n JUMP \t\t\t\ntag 54\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 55\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 57\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n PUSH 7\t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 58\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 59\t\t\t\n JUMP \t\t\t\ntag 58\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH [tag] 60\t\t\t\n JUMP \t\t\t\ntag 57\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 5\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 61\t\t\t\n JUMPI \t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH E450D38C00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 62\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 63\t\t\t\n JUMP \t\t\t\ntag 62\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\ntag 61\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 5\t\t\t\n PUSH 0\t\t\t\n DUP7 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\ntag 60\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 64\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n PUSH 7\t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SLOAD \t\t\t\n SUB \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH [tag] 65\t\t\t\n JUMP \t\t\t\ntag 64\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 5\t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SLOAD \t\t\t\n ADD \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\ntag 65\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF\t\t\t\n DUP4 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 66\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 67\t\t\t\n JUMP \t\t\t\ntag 66\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 68\t\t\t-License-Identifier: MIT\\r\\npr...\n JUMPDEST \t\t\t-License-Identifier: MIT\\r\\npr...\n PUSH 0\t\t\tsolidi\n PUSH 40\t\t\t s\n MLOAD \t\t\ts is a si\n SWAP1 \t\t\t\\r\\n\\r\\n// This is a si\n POP \t\t\t\\r\\n\\r\\n// This is a si\n SWAP1 \t\t\t-License-Identifier: MIT\\r\\npr...\n JUMP \t\t\t-License-Identifier: MIT\\r\\npr...\ntag 69\t\t\tntation of an OFT (Omnichain F...\n JUMPDEST \t\t\tntation of an OFT (Omnichain F...\n PUSH 0\t\t\ts\n DUP1 \t\t\tt\n REVERT \t\t\tct for this \ntag 70\t\t\timport { Ownable } from \"@open...\n JUMPDEST \t\t\timport { Ownable } from \"@open...\n PUSH 0\t\t\tt\n DUP1 \t\t\t/\n REVERT \t\t\terolabs/oft-\ntag 71\t\t\ts/OFT.sol\";\\r\\n\\r\\ncontract My...\n JUMPDEST \t\t\ts/OFT.sol\";\\r\\n\\r\\ncontract My...\n PUSH 0\t\t\tr\n DUP1 \t\t\te\n REVERT \t\t\ttring memory\ntag 72\t\t\t uint256 _initialSupply,...\n JUMPDEST \t\t\t uint256 _initialSupply,...\n PUSH 0\t\t\tm\n DUP1 \t\t\t_\n REVERT \t\t\t_name, _symb\ntag 73\t\t\tint, _delegate) Ownable(_deleg...\n JUMPDEST \t\t\tint, _delegate) Ownable(_deleg...\n PUSH 0\t\t\t _\n PUSH 1F\t\t\tls\n NOT \t\t\tcimals(\n PUSH 1F\t\t\t**\n DUP4 \t\t\ty * 1\n ADD \t\t\tupply * 10 ** \n AND \t\t\tialSupply * 10 ** decimals()\n SWAP1 \t\t\tate, _initialSupply * 10 ** de...\n POP \t\t\tate, _initialSupply * 10 ** de...\n SWAP2 \t\t\tint, _delegate) Ownable(_deleg...\n SWAP1 \t\t\tint, _delegate) Ownable(_deleg...\n POP \t\t\tint, _delegate) Ownable(_deleg...\n JUMP \t\t\tint, _delegate) Ownable(_deleg...\ntag 74\t\t\t\\r\\n\n JUMPDEST \t\t\t\\r\\n\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 41\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\ntag 75\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 122\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 73\t\t\t\n JUMP \t\t\t\ntag 122\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n OR \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 123\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 124\t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\ntag 124\t\t\t\n JUMPDEST \t\t\t\ntag 123\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 76\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 126\t\t\t\n PUSH [tag] 68\t\t\t\n JUMP \t\t\t\ntag 126\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 127\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 75\t\t\t\n JUMP \t\t\t\ntag 127\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 77\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 129\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 130\t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\ntag 130\t\t\t\n JUMPDEST \t\t\t\ntag 129\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 131\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 73\t\t\t\n JUMP \t\t\t\ntag 131\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 78\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\ntag 133\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 135\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 133\t\t\t\n JUMP \t\t\t\ntag 135\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 79\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 137\t\t\t\n PUSH [tag] 138\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 77\t\t\t\n JUMP \t\t\t\ntag 138\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 76\t\t\t\n JUMP \t\t\t\ntag 137\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 139\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 140\t\t\t\n PUSH [tag] 72\t\t\t\n JUMP \t\t\t\ntag 140\t\t\t\n JUMPDEST \t\t\t\ntag 139\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 141\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 78\t\t\t\n JUMP \t\t\t\ntag 141\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 80\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SLT \t\t\t\n PUSH [tag] 143\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 144\t\t\t\n PUSH [tag] 71\t\t\t\n JUMP \t\t\t\ntag 144\t\t\t\n JUMPDEST \t\t\t\ntag 143\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 145\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 79\t\t\t\n JUMP \t\t\t\ntag 145\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 81\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 82\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 148\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 148\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 149\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\ntag 149\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 83\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 151\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 82\t\t\t\n JUMP \t\t\t\ntag 151\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 84\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 85\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 154\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 84\t\t\t\n JUMP \t\t\t\ntag 154\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 86\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 156\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 85\t\t\t\n JUMP \t\t\t\ntag 156\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 157\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\ntag 157\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 87\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 159\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 86\t\t\t\n JUMP \t\t\t\ntag 159\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 3\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n PUSH A0\t\t\t\n DUP7 \t\t\t\n DUP9 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 161\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 162\t\t\t\n PUSH [tag] 69\t\t\t\n JUMP \t\t\t\ntag 162\t\t\t\n JUMPDEST \t\t\t\ntag 161\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 163\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 164\t\t\t\n PUSH [tag] 70\t\t\t\n JUMP \t\t\t\ntag 164\t\t\t\n JUMPDEST \t\t\t\ntag 163\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 165\t\t\t\n DUP9 \t\t\t\n DUP3 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n PUSH [tag] 80\t\t\t\n JUMP \t\t\t\ntag 165\t\t\t\n JUMPDEST \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 166\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 167\t\t\t\n PUSH [tag] 70\t\t\t\n JUMP \t\t\t\ntag 167\t\t\t\n JUMPDEST \t\t\t\ntag 166\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 168\t\t\t\n DUP9 \t\t\t\n DUP3 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n PUSH [tag] 80\t\t\t\n JUMP \t\t\t\ntag 168\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n PUSH [tag] 169\t\t\t\n DUP9 \t\t\t\n DUP3 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n PUSH [tag] 83\t\t\t\n JUMP \t\t\t\ntag 169\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 60\t\t\t\n PUSH [tag] 170\t\t\t\n DUP9 \t\t\t\n DUP3 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n PUSH [tag] 87\t\t\t\n JUMP \t\t\t\ntag 170\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 80\t\t\t\n PUSH [tag] 171\t\t\t\n DUP9 \t\t\t\n DUP3 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n PUSH [tag] 87\t\t\t\n JUMP \t\t\t\ntag 171\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP6 \t\t\t\n SWAP1 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 88\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 173\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 85\t\t\t\n JUMP \t\t\t\ntag 173\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 16\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 175\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 88\t\t\t\n JUMP \t\t\t\ntag 175\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 89\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FF\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 90\t\t\t\n JUMPDEST \t\t\t\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 11\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\ntag 32\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 179\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 89\t\t\t\n JUMP \t\t\t\ntag 179\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 180\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 89\t\t\t\n JUMP \t\t\t\ntag 180\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH FF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 181\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 182\t\t\t\n PUSH [tag] 90\t\t\t\n JUMP \t\t\t\ntag 182\t\t\t\n JUMPDEST \t\t\t\ntag 181\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 91\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n PUSH 1\t\t\t\n SHR \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 92\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP4 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\ntag 185\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n DUP6 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 187\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n DUP7 \t\t\t\n DIV \t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 188\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 189\t\t\t\n PUSH [tag] 90\t\t\t\n JUMP \t\t\t\ntag 189\t\t\t\n JUMPDEST \t\t\t\ntag 188\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n DUP6 \t\t\t\n AND \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 190\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\ntag 190\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP2 \t\t\t\n MUL \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 191\t\t\t\n DUP6 \t\t\t\n PUSH [tag] 91\t\t\t\n JUMP \t\t\t\ntag 191\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n PUSH [tag] 185\t\t\t\n JUMP \t\t\t\ntag 187\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 93\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 193\t\t\t\n JUMPI \t\t\t\n PUSH 1\t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 192\t\t\t\n JUMP \t\t\t\ntag 193\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n PUSH [tag] 194\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 192\t\t\t\n JUMP \t\t\t\ntag 194\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 196\t\t\t\n JUMPI \t\t\t\n PUSH 2\t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 197\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 195\t\t\t\n JUMP \t\t\t\ntag 196\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 192\t\t\t\n JUMP \t\t\t\ntag 197\t\t\t\n JUMPDEST \t\t\t\n PUSH FF\t\t\t\n DUP5 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 198\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 199\t\t\t\n PUSH [tag] 90\t\t\t\n JUMP \t\t\t\ntag 199\t\t\t\n JUMPDEST \t\t\t\ntag 198\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n PUSH 2\t\t\t\n EXP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 200\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 201\t\t\t\n PUSH [tag] 90\t\t\t\n JUMP \t\t\t\ntag 201\t\t\t\n JUMPDEST \t\t\t\ntag 200\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 192\t\t\t\n JUMP \t\t\t\ntag 195\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n LT \t\t\t\n PUSH 133\t\t\t\n DUP4 \t\t\t\n LT \t\t\t\n AND \t\t\t\n PUSH 4E\t\t\t\n DUP5 \t\t\t\n LT \t\t\t\n PUSH B\t\t\t\n DUP5 \t\t\t\n LT \t\t\t\n AND \t\t\t\n OR \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 202\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n EXP \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 203\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 204\t\t\t\n PUSH [tag] 90\t\t\t\n JUMP \t\t\t\ntag 204\t\t\t\n JUMPDEST \t\t\t\ntag 203\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 192\t\t\t\n JUMP \t\t\t\ntag 202\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 205\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH 1\t\t\t\n PUSH [tag] 92\t\t\t\n JUMP \t\t\t\ntag 205\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n DIV \t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 206\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 207\t\t\t\n PUSH [tag] 90\t\t\t\n JUMP \t\t\t\ntag 207\t\t\t\n JUMPDEST \t\t\t\ntag 206\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MUL \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\ntag 192\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 34\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 209\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 209\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 210\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 89\t\t\t\n JUMP \t\t\t\ntag 210\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n PUSH [tag] 211\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 93\t\t\t\n JUMP \t\t\t\ntag 211\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 94\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 95\t\t\t\n JUMPDEST \t\t\t\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 22\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\ntag 96\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 2\t\t\t\n DUP3 \t\t\t\n DIV \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 1\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n DUP1 \t\t\t\n PUSH [tag] 215\t\t\t\n JUMPI \t\t\t\n PUSH 7F\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\ntag 215\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n LT \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH [tag] 216\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 217\t\t\t\n PUSH [tag] 95\t\t\t\n JUMP \t\t\t\ntag 217\t\t\t\n JUMPDEST \t\t\t\ntag 216\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 97\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 98\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DIV \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 99\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SHL \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 100\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 8\t\t\t\n DUP4 \t\t\t\n MUL \t\t\t\n PUSH [tag] 222\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 99\t\t\t\n JUMP \t\t\t\ntag 222\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 223\t\t\t\n DUP7 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 99\t\t\t\n JUMP \t\t\t\ntag 223\t\t\t\n JUMPDEST \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n NOT \t\t\t\n DUP5 \t\t\t\n AND \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP7 \t\t\t\n AND \t\t\t\n DUP5 \t\t\t\n OR \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 101\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 102\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 226\t\t\t\n PUSH [tag] 227\t\t\t\n PUSH [tag] 228\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 228\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 101\t\t\t\n JUMP \t\t\t\ntag 227\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 226\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 103\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 104\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 231\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 102\t\t\t\n JUMP \t\t\t\ntag 231\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 232\t\t\t\n PUSH [tag] 233\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 103\t\t\t\n JUMP \t\t\t\ntag 233\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 100\t\t\t\n JUMP \t\t\t\ntag 232\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 105\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\ntag 106\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 236\t\t\t\n PUSH [tag] 105\t\t\t\n JUMP \t\t\t\ntag 236\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 237\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 104\t\t\t\n JUMP \t\t\t\ntag 237\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 107\t\t\t\n JUMPDEST \t\t\t\ntag 239\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 241\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 242\t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 106\t\t\t\n JUMP \t\t\t\ntag 242\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 239\t\t\t\n JUMP \t\t\t\ntag 241\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 108\t\t\t\n JUMPDEST \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 244\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 245\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 97\t\t\t\n JUMP \t\t\t\ntag 245\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 246\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\ntag 246\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 247\t\t\t\n JUMPI \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\ntag 247\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 248\t\t\t\n PUSH [tag] 249\t\t\t\n DUP6 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\ntag 249\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 107\t\t\t\n JUMP \t\t\t\ntag 248\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\ntag 244\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 109\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SHR \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 110\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 252\t\t\t\n PUSH 0\t\t\t\n NOT \t\t\t\n DUP5 \t\t\t\n PUSH 8\t\t\t\n MUL \t\t\t\n PUSH [tag] 109\t\t\t\n JUMP \t\t\t\ntag 252\t\t\t\n JUMPDEST \t\t\t\n NOT \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n AND \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 111\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 254\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 110\t\t\t\n JUMP \t\t\t\ntag 254\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n PUSH 2\t\t\t\n MUL \t\t\t\n DUP3 \t\t\t\n OR \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 37\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 256\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 94\t\t\t\n JUMP \t\t\t\ntag 256\t\t\t\n JUMPDEST \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 257\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 258\t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\ntag 258\t\t\t\n JUMPDEST \t\t\t\ntag 257\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 259\t\t\t\n DUP3 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 96\t\t\t\n JUMP \t\t\t\ntag 259\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 260\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 108\t\t\t\n JUMP \t\t\t\ntag 260\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n GT \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 262\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 263\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\ntag 263\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 264\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 111\t\t\t\n JUMP \t\t\t\ntag 264\t\t\t\n JUMPDEST \t\t\t\n DUP7 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH [tag] 261\t\t\t\n JUMP \t\t\t\ntag 262\t\t\t\n JUMPDEST \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n DUP5 \t\t\t\n AND \t\t\t\n PUSH [tag] 265\t\t\t\n DUP7 \t\t\t\n PUSH [tag] 97\t\t\t\n JUMP \t\t\t\ntag 265\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\ntag 266\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 268\t\t\t\n JUMPI \t\t\t\n DUP5 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n DUP3 \t\t\t\n SSTORE \t\t\t\n PUSH 1\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 266\t\t\t\n JUMP \t\t\t\ntag 268\t\t\t\n JUMPDEST \t\t\t\n DUP7 \t\t\t\n DUP4 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 269\t\t\t\n JUMPI \t\t\t\n DUP5 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 270\t\t\t\n PUSH 1F\t\t\t\n DUP10 \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 110\t\t\t\n JUMP \t\t\t\ntag 270\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\ntag 269\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n PUSH 2\t\t\t\n DUP9 \t\t\t\n MUL \t\t\t\n ADD \t\t\t\n DUP9 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\ntag 261\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 45\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 272\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 272\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 273\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 273\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n PUSH [tag] 274\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 274\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n DIV \t\t\t\n DUP5 \t\t\t\n EQ \t\t\t\n DUP4 \t\t\t\n ISZERO \t\t\t\n OR \t\t\t\n PUSH [tag] 275\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 276\t\t\t\n PUSH [tag] 90\t\t\t\n JUMP \t\t\t\ntag 276\t\t\t\n JUMPDEST \t\t\t\ntag 275\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 59\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 278\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 278\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 279\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 279\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 280\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 281\t\t\t\n PUSH [tag] 90\t\t\t\n JUMP \t\t\t\ntag 281\t\t\t\n JUMPDEST \t\t\t\ntag 280\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 112\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 283\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\ntag 283\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 63\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 285\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 88\t\t\t\n JUMP \t\t\t\ntag 285\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 286\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 112\t\t\t\n JUMP \t\t\t\ntag 286\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 287\t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 112\t\t\t\n JUMP \t\t\t\ntag 287\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 67\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 289\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 112\t\t\t\n JUMP \t\t\t\ntag 289\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\ntag 47\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 80\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n MLOAD \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH A0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n MLOAD \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH #[$] 0000000000000000000000000000000000000000000000000000000000000000\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [$] 0000000000000000000000000000000000000000000000000000000000000000\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n CODECOPY \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n ASSIGNIMMUTABLE 2778\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n ASSIGNIMMUTABLE 1386\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH #[$] 0000000000000000000000000000000000000000000000000000000000000000\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n RETURN \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n.data\n 0:\n .code\n PUSH 80\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 40\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n MSTORE \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 4\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n CALLDATASIZE \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n LT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n CALLDATALOAD \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH E0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n SHR \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 7D25A05E\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n GT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 44\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH BB0B6A53\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n GT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 45\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH D045A0DC\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n GT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 46\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH D045A0DC\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 38\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH D4243885\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 39\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH DD62ED3E\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 40\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH F2FDE38B\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 41\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH FC0C546A\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 42\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH FF7BD03D\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 43\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 46\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH BB0B6A53\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 33\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH BC70B354\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 34\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH BD815DB0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 35\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH C7C7F5B3\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 36\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH CA5EB5E1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 37\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 45\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 963EFCAA\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n GT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 47\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 963EFCAA\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 28\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 9F68B964\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 29\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH A9059CBB\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 30\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH B731EA0A\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 31\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH B98BD070\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 32\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 47\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 7D25A05E\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 23\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 82413EAC\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 24\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 857749B0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 25\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 8DA5CB5B\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 26\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 95D89B41\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 27\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 44\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 23B872DD\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n GT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 48\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 5535D461\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n GT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 49\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 5535D461\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 17\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 5A0DFE4D\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 18\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 5E280F11\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 19\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 6FC1B31E\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 20\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 70A08231\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 21\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 715018A6\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 22\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 49\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 23B872DD\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 12\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 313CE567\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 13\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 3400288B\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 14\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 3B6F743B\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 15\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 52AE2879\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 16\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 48\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 134D4F25\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n GT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 50\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 134D4F25\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 7\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 156A0D0F\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 8\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 17442B70\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 9\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 18160DDD\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 10\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 1F5E1334\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 11\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 50\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 6FDDE03\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 2\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 95EA7B3\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 3\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH D35B415\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 4\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 111ECDAD\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 5\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 13137D65\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n EQ \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH [tag] 6\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPI \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 1\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n JUMPDEST \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n PUSH 0\t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n DUP1 \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n REVERT \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n tag 2\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 51\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 51\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 52\t\t\t\n PUSH [tag] 53\t\t\t\n JUMP \t\t\t\n tag 52\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 54\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 55\t\t\t\n JUMP \t\t\t\n tag 54\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 3\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 56\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 56\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 57\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 58\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 59\t\t\t\n JUMP \t\t\t\n tag 58\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 60\t\t\t\n JUMP \t\t\t\n tag 57\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 61\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 62\t\t\t\n JUMP \t\t\t\n tag 61\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 4\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 63\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 63\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 64\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 65\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 66\t\t\t\n JUMP \t\t\t\n tag 65\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 67\t\t\t\n JUMP \t\t\t\n tag 64\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 68\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 69\t\t\t\n JUMP \t\t\t\n tag 68\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 5\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 70\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 70\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 71\t\t\t\n PUSH [tag] 72\t\t\t\n JUMP \t\t\t\n tag 71\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 73\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 73\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 6\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 75\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 76\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 77\t\t\t\n JUMP \t\t\t\n tag 76\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 78\t\t\t\n JUMP \t\t\t\n tag 75\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 7\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 79\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 79\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 80\t\t\t\n PUSH [tag] 81\t\t\t\n JUMP \t\t\t\n tag 80\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 82\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 83\t\t\t\n JUMP \t\t\t\n tag 82\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 8\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 84\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 84\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 85\t\t\t\n PUSH [tag] 86\t\t\t\n JUMP \t\t\t\n tag 85\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 87\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 88\t\t\t\n JUMP \t\t\t\n tag 87\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 9\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 89\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 89\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 90\t\t\t\n PUSH [tag] 91\t\t\t\n JUMP \t\t\t\n tag 90\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 92\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 93\t\t\t\n JUMP \t\t\t\n tag 92\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 10\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 94\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 94\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 95\t\t\t\n PUSH [tag] 96\t\t\t\n JUMP \t\t\t\n tag 95\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 97\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\n tag 97\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 11\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 99\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 99\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 100\t\t\t\n PUSH [tag] 101\t\t\t\n JUMP \t\t\t\n tag 100\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 102\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 83\t\t\t\n JUMP \t\t\t\n tag 102\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 12\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 103\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 103\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 104\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 105\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 106\t\t\t\n JUMP \t\t\t\n tag 105\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 107\t\t\t\n JUMP \t\t\t\n tag 104\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 108\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 62\t\t\t\n JUMP \t\t\t\n tag 108\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 13\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 109\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 109\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 110\t\t\t\n PUSH [tag] 111\t\t\t\n JUMP \t\t\t\n tag 110\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 112\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 113\t\t\t\n JUMP \t\t\t\n tag 112\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 14\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 114\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 114\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 115\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 116\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 117\t\t\t\n JUMP \t\t\t\n tag 116\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 118\t\t\t\n JUMP \t\t\t\n tag 115\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 15\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 119\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 119\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 120\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 121\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 122\t\t\t\n JUMP \t\t\t\n tag 121\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 123\t\t\t\n JUMP \t\t\t\n tag 120\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 124\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 125\t\t\t\n JUMP \t\t\t\n tag 124\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 16\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 126\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 126\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 127\t\t\t\n PUSH [tag] 128\t\t\t\n JUMP \t\t\t\n tag 127\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 129\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 129\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 17\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n CALLVALUE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ISZERO \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 130\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPI \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 0\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n REVERT \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 130\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 131\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 4\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n CALLDATASIZE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SUB \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 132\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 133\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 132\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 134\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 131\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 40\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MLOAD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 135\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 136\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 135\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 40\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MLOAD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SUB \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n RETURN \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 18\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 137\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 137\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 138\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 139\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 117\t\t\t\n JUMP \t\t\t\n tag 139\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 140\t\t\t\n JUMP \t\t\t\n tag 138\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 141\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 62\t\t\t\n JUMP \t\t\t\n tag 141\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 19\t\t\t_symbol,\\r\\n uint256 _i...\n JUMPDEST \t\t\t_symbol,\\r\\n uint256 _i...\n CALLVALUE \t\t\t_symbol,\\r\\n uint256 _i...\n DUP1 \t\t\t_symbol,\\r\\n uint256 _i...\n ISZERO \t\t\t_symbol,\\r\\n uint256 _i...\n PUSH [tag] 142\t\t\t_symbol,\\r\\n uint256 _i...\n JUMPI \t\t\t_symbol,\\r\\n uint256 _i...\n PUSH 0\t\t\t_symbol,\\r\\n uint256 _i...\n DUP1 \t\t\t_symbol,\\r\\n uint256 _i...\n REVERT \t\t\t_symbol,\\r\\n uint256 _i...\n tag 142\t\t\t_symbol,\\r\\n uint256 _i...\n JUMPDEST \t\t\t_symbol,\\r\\n uint256 _i...\n POP \t\t\t_symbol,\\r\\n uint256 _i...\n PUSH [tag] 143\t\t\t_symbol,\\r\\n uint256 _i...\n PUSH [tag] 144\t\t\t_symbol,\\r\\n uint256 _i...\n JUMP \t\t\t_symbol,\\r\\n uint256 _i...\n tag 143\t\t\t_symbol,\\r\\n uint256 _i...\n JUMPDEST \t\t\t_symbol,\\r\\n uint256 _i...\n PUSH 40\t\t\t_symbol,\\r\\n uint256 _i...\n MLOAD \t\t\t_symbol,\\r\\n uint256 _i...\n PUSH [tag] 145\t\t\t_symbol,\\r\\n uint256 _i...\n SWAP2 \t\t\t_symbol,\\r\\n uint256 _i...\n SWAP1 \t\t\t_symbol,\\r\\n uint256 _i...\n PUSH [tag] 146\t\t\t_symbol,\\r\\n uint256 _i...\n JUMP \t\t\t_symbol,\\r\\n uint256 _i...\n tag 145\t\t\t_symbol,\\r\\n uint256 _i...\n JUMPDEST \t\t\t_symbol,\\r\\n uint256 _i...\n PUSH 40\t\t\t_symbol,\\r\\n uint256 _i...\n MLOAD \t\t\t_symbol,\\r\\n uint256 _i...\n DUP1 \t\t\t_symbol,\\r\\n uint256 _i...\n SWAP2 \t\t\t_symbol,\\r\\n uint256 _i...\n SUB \t\t\t_symbol,\\r\\n uint256 _i...\n SWAP1 \t\t\t_symbol,\\r\\n uint256 _i...\n RETURN \t\t\t_symbol,\\r\\n uint256 _i...\n tag 20\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 147\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 147\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 148\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 149\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 150\t\t\t\n JUMP \t\t\t\n tag 149\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 151\t\t\t\n JUMP \t\t\t\n tag 148\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 21\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 152\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 152\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 153\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 154\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 150\t\t\t\n JUMP \t\t\t\n tag 154\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 155\t\t\t\n JUMP \t\t\t\n tag 153\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 156\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\n tag 156\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 22\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 157\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 157\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 158\t\t\t\n PUSH [tag] 159\t\t\t\n JUMP \t\t\t\n tag 158\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 23\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 160\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 160\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 161\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 162\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 117\t\t\t\n JUMP \t\t\t\n tag 162\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 163\t\t\t\n JUMP \t\t\t\n tag 161\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 164\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 165\t\t\t\n JUMP \t\t\t\n tag 164\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 24\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 166\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 166\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 167\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 168\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 169\t\t\t\n JUMP \t\t\t\n tag 168\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 170\t\t\t\n JUMP \t\t\t\n tag 167\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 171\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 62\t\t\t\n JUMP \t\t\t\n tag 171\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 25\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 172\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 172\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 173\t\t\t\n PUSH [tag] 174\t\t\t\n JUMP \t\t\t\n tag 173\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 175\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 113\t\t\t\n JUMP \t\t\t\n tag 175\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 26\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 176\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 176\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 177\t\t\t\n PUSH [tag] 178\t\t\t\n JUMP \t\t\t\n tag 177\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 179\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 179\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 27\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 180\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 180\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 181\t\t\t\n PUSH [tag] 182\t\t\t\n JUMP \t\t\t\n tag 181\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 183\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 55\t\t\t\n JUMP \t\t\t\n tag 183\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 28\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 184\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 184\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 185\t\t\t\n PUSH [tag] 186\t\t\t\n JUMP \t\t\t\n tag 185\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 187\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\n tag 187\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 29\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 188\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 188\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 189\t\t\t\n PUSH [tag] 190\t\t\t\n JUMP \t\t\t\n tag 189\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 191\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 62\t\t\t\n JUMP \t\t\t\n tag 191\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 30\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 192\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 192\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 193\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 194\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 59\t\t\t\n JUMP \t\t\t\n tag 194\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 195\t\t\t\n JUMP \t\t\t\n tag 193\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 196\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 62\t\t\t\n JUMP \t\t\t\n tag 196\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 31\t\t\tme, _symbol, _lzEndpoin\n JUMPDEST \t\t\tme, _symbol, _lzEndpoin\n CALLVALUE \t\t\tme, _symbol, _lzEndpoin\n DUP1 \t\t\tme, _symbol, _lzEndpoin\n ISZERO \t\t\tme, _symbol, _lzEndpoin\n PUSH [tag] 197\t\t\tme, _symbol, _lzEndpoin\n JUMPI \t\t\tme, _symbol, _lzEndpoin\n PUSH 0\t\t\tme, _symbol, _lzEndpoin\n DUP1 \t\t\tme, _symbol, _lzEndpoin\n REVERT \t\t\tme, _symbol, _lzEndpoin\n tag 197\t\t\tme, _symbol, _lzEndpoin\n JUMPDEST \t\t\tme, _symbol, _lzEndpoin\n POP \t\t\tme, _symbol, _lzEndpoin\n PUSH [tag] 198\t\t\tme, _symbol, _lzEndpoin\n PUSH [tag] 199\t\t\tme, _symbol, _lzEndpoin\n JUMP \t\t\tme, _symbol, _lzEndpoin\n tag 198\t\t\tme, _symbol, _lzEndpoin\n JUMPDEST \t\t\tme, _symbol, _lzEndpoin\n PUSH 40\t\t\tme, _symbol, _lzEndpoin\n MLOAD \t\t\tme, _symbol, _lzEndpoin\n PUSH [tag] 200\t\t\tme, _symbol, _lzEndpoin\n SWAP2 \t\t\tme, _symbol, _lzEndpoin\n SWAP1 \t\t\tme, _symbol, _lzEndpoin\n PUSH [tag] 74\t\t\tme, _symbol, _lzEndpoin\n JUMP \t\t\tme, _symbol, _lzEndpoin\n tag 200\t\t\tme, _symbol, _lzEndpoin\n JUMPDEST \t\t\tme, _symbol, _lzEndpoin\n PUSH 40\t\t\tme, _symbol, _lzEndpoin\n MLOAD \t\t\tme, _symbol, _lzEndpoin\n DUP1 \t\t\tme, _symbol, _lzEndpoin\n SWAP2 \t\t\tme, _symbol, _lzEndpoin\n SUB \t\t\tme, _symbol, _lzEndpoin\n SWAP1 \t\t\tme, _symbol, _lzEndpoin\n RETURN \t\t\tme, _symbol, _lzEndpoin\n tag 32\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 201\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 201\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 202\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 203\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 204\t\t\t\n JUMP \t\t\t\n tag 203\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 205\t\t\t\n JUMP \t\t\t\n tag 202\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 33\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMPDEST \t\t\tl, _lzEndpoint, _delegate) Own...\n CALLVALUE \t\t\tl, _lzEndpoint, _delegate) Own...\n DUP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n ISZERO \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH [tag] 206\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMPI \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 0\t\t\tl, _lzEndpoint, _delegate) Own...\n DUP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n REVERT \t\t\tl, _lzEndpoint, _delegate) Own...\n tag 206\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMPDEST \t\t\tl, _lzEndpoint, _delegate) Own...\n POP \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH [tag] 207\t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 4\t\t\tl, _lzEndpoint, _delegate) Own...\n DUP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n CALLDATASIZE \t\t\tl, _lzEndpoint, _delegate) Own...\n SUB \t\t\tl, _lzEndpoint, _delegate) Own...\n DUP2 \t\t\tl, _lzEndpoint, _delegate) Own...\n ADD \t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH [tag] 208\t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP2 \t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH [tag] 209\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMP \t\t\tl, _lzEndpoint, _delegate) Own...\n tag 208\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMPDEST \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH [tag] 210\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMP \t\t\tl, _lzEndpoint, _delegate) Own...\n tag 207\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMPDEST \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 40\t\t\tl, _lzEndpoint, _delegate) Own...\n MLOAD \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH [tag] 211\t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP2 \t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH [tag] 212\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMP \t\t\tl, _lzEndpoint, _delegate) Own...\n tag 211\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMPDEST \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 40\t\t\tl, _lzEndpoint, _delegate) Own...\n MLOAD \t\t\tl, _lzEndpoint, _delegate) Own...\n DUP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP2 \t\t\tl, _lzEndpoint, _delegate) Own...\n SUB \t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n RETURN \t\t\tl, _lzEndpoint, _delegate) Own...\n tag 34\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 213\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 213\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 214\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 215\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 216\t\t\t\n JUMP \t\t\t\n tag 215\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 217\t\t\t\n JUMP \t\t\t\n tag 214\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 218\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 136\t\t\t\n JUMP \t\t\t\n tag 218\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 35\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 219\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 220\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 221\t\t\t\n JUMP \t\t\t\n tag 220\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 222\t\t\t\n JUMP \t\t\t\n tag 219\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 36\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 223\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 224\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 225\t\t\t\n JUMP \t\t\t\n tag 224\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 226\t\t\t\n JUMP \t\t\t\n tag 223\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 227\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 228\t\t\t\n JUMP \t\t\t\n tag 227\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 37\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 229\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 229\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 230\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 231\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 150\t\t\t\n JUMP \t\t\t\n tag 231\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 232\t\t\t\n JUMP \t\t\t\n tag 230\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 38\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 233\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 234\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 77\t\t\t\n JUMP \t\t\t\n tag 234\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 235\t\t\t\n JUMP \t\t\t\n tag 233\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 39\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 236\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 236\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 237\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 238\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 150\t\t\t\n JUMP \t\t\t\n tag 238\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 239\t\t\t\n JUMP \t\t\t\n tag 237\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 40\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 240\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 240\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 241\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 242\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 243\t\t\t\n JUMP \t\t\t\n tag 242\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 244\t\t\t\n JUMP \t\t\t\n tag 241\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 245\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\n tag 245\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 41\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 246\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 246\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 247\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 248\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 150\t\t\t\n JUMP \t\t\t\n tag 248\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 249\t\t\t\n JUMP \t\t\t\n tag 247\t\t\t\n JUMPDEST \t\t\t\n STOP \t\t\t\n tag 42\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 250\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 250\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 251\t\t\t\n PUSH [tag] 252\t\t\t\n JUMP \t\t\t\n tag 251\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 253\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 253\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 43\t\t\t\n JUMPDEST \t\t\t\n CALLVALUE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 254\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 254\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 255\t\t\t\n PUSH 4\t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 256\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 257\t\t\t\n JUMP \t\t\t\n tag 256\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 258\t\t\t\n JUMP \t\t\t\n tag 255\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 259\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 62\t\t\t\n JUMP \t\t\t\n tag 259\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n RETURN \t\t\t\n tag 53\t\t\t\n JUMPDEST \t\t\t\n PUSH 60\t\t\t\n PUSH 8\t\t\t\n DUP1 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 261\t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 262\t\t\t\n JUMP \t\t\t\n tag 261\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n DUP1 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 263\t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 262\t\t\t\n JUMP \t\t\t\n tag 263\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 264\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n LT \t\t\t\n PUSH [tag] 265\t\t\t\n JUMPI \t\t\t\n PUSH 100\t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SLOAD \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n DUP4 \t\t\t\n MSTORE \t\t\t\n SWAP2 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n PUSH [tag] 264\t\t\t\n JUMP \t\t\t\n tag 265\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SWAP1 \t\t\t\n tag 266\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n SLOAD \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n PUSH 1\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n GT \t\t\t\n PUSH [tag] 266\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n SWAP1 \t\t\t\n SUB \t\t\t\n PUSH 1F\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n tag 264\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 60\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 268\t\t\t\n PUSH [tag] 269\t\t\t\n JUMP \t\t\t\n tag 268\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 270\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 271\t\t\t\n JUMP \t\t\t\n tag 270\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 67\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 272\t\t\t\n PUSH [tag] 273\t\t\t\n JUMP \t\t\t\n tag 272\t\t\t\n JUMPDEST \t\t\t\n PUSH 60\t\t\t\n PUSH [tag] 274\t\t\t\n PUSH [tag] 275\t\t\t\n JUMP \t\t\t\n tag 274\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n ADDRESS \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FC0C546A\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n DUP7 \t\t\t\n GAS \t\t\t\n STATICCALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 278\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 278\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 279\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 280\t\t\t\n JUMP \t\t\t\n tag 279\t\t\t\n JUMPDEST \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 18160DDD\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n DUP7 \t\t\t\n GAS \t\t\t\n STATICCALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 282\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 282\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 283\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 284\t\t\t\n JUMP \t\t\t\n tag 283\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 285\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 286\t\t\t\n PUSH [tag] 287\t\t\t\n JUMP \t\t\t\n tag 286\t\t\t\n JUMPDEST \t\t\t\n tag 285\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n PUSH 20\t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 288\t\t\t\n JUMPI \t\t\t\n DUP2 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n tag 289\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 290\t\t\t\n PUSH [tag] 291\t\t\t\n JUMP \t\t\t\n tag 290\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH 1\t\t\t\n SWAP1 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n PUSH [tag] 289\t\t\t\n JUMPI \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n tag 288\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 292\t\t\t\n DUP9 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n DUP10 \t\t\t\n PUSH 60\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n DUP11 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 293\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 293\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 294\t\t\t\n JUMP \t\t\t\n tag 292\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP4 \t\t\t\n SWAP1 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 72\t\t\t\n JUMPDEST \t\t\t\n PUSH 4\t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n SWAP1 \t\t\t\n DIV \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n JUMP \t\t\t\n tag 78\t\t\t\n JUMPDEST \t\t\t\n CALLER \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSHIMMUTABLE 1386\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n EQ \t\t\t\n PUSH [tag] 296\t\t\t\n JUMPI \t\t\t\n CALLER \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 91AC5E4F00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 297\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 297\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 296\t\t\t\n JUMPDEST \t\t\t\n DUP7 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH [tag] 298\t\t\t\n DUP9 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 299\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 299\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 300\t\t\t\n JUMP \t\t\t\n tag 298\t\t\t\n JUMPDEST \t\t\t\n EQ \t\t\t\n PUSH [tag] 301\t\t\t\n JUMPI \t\t\t\n DUP7 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 302\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 302\t\t\t\n JUMPDEST \t\t\t\n DUP8 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH C26BEBCC00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 303\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 304\t\t\t\n JUMP \t\t\t\n tag 303\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 301\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 305\t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n PUSH [tag] 306\t\t\t\n JUMP \t\t\t\n tag 305\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 81\t\t\t\n JUMPDEST \t\t\t\n PUSH 2\t\t\t\n DUP2 \t\t\t\n JUMP \t\t\t\n tag 86\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 2E49C2C00000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 1\t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n SWAP2 \t\t\t\n JUMP \t\t\t\n tag 91\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 1\t\t\t\n PUSH 2\t\t\t\\r\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n SWAP2 \t\t\t\n JUMP \t\t\t\n tag 96\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 7\t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 101\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n JUMP \t\t\t\n tag 107\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 311\t\t\t\n PUSH [tag] 269\t\t\t\n JUMP \t\t\t\n tag 311\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 312\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 313\t\t\t\n JUMP \t\t\t\n tag 312\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 314\t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 315\t\t\t\n JUMP \t\t\t\n tag 314\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 111\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 12\t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 118\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 318\t\t\t\n PUSH [tag] 319\t\t\t\n JUMP \t\t\t\n tag 318\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 321\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 322\t\t\t\n JUMP \t\t\t\n tag 321\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 123\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 323\t\t\t\n PUSH [tag] 324\t\t\t\n JUMP \t\t\t\n tag 323\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 326\t\t\t\n DUP5 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n DUP6 \t\t\t\n PUSH 60\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n DUP7 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 327\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 327\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 294\t\t\t\n JUMP \t\t\t\n tag 326\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 328\t\t\t\n DUP7 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 329\t\t\t\n JUMP \t\t\t\n tag 328\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 330\t\t\t\n DUP7 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 331\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 331\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP9 \t\t\t\n PUSH [tag] 332\t\t\t\n JUMP \t\t\t\n tag 330\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 128\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n ADDRESS \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 134\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 3\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 20\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 0\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 40\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 0\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n KECCAK256 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 20\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 0\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 40\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 0\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n KECCAK256 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 0\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SLOAD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 334\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 262\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 334\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 1F\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 20\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DIV \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MUL \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 20\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 40\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MLOAD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 40\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP3 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 20\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP3 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SLOAD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 335\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 262\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 335\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ISZERO \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 336\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPI \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 1F\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n LT \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 337\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPI \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 100\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP4 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SLOAD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DIV \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MUL \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP4 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 20\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 336\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 337\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP3 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 0\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 20\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 0\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n KECCAK256 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 338\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SLOAD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n MSTORE \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 1\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 20\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP4 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n GT \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH [tag] 338\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPI \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP3 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP1 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SUB \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n PUSH 1F\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n AND \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP3 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n ADD \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n SWAP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 336\t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMPDEST \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n POP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n DUP2 \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n JUMP \t\t\tlegate\\r\\n ) OFT(_name, _sy...\n tag 140\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n PUSH 1\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SLOAD \t\t\t\n EQ \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 144\t\t\t_symbol,\\r\\n uint256 _i...\n JUMPDEST \t\t\t_symbol,\\r\\n uint256 _i...\n PUSHIMMUTABLE 1386\t\t\t_symbol,\\r\\n uint256 _i...\n DUP2 \t\t\t_symbol,\\r\\n uint256 _i...\n JUMP \t\t\t_symbol,\\r\\n uint256 _i...\n tag 151\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 341\t\t\t\n PUSH [tag] 319\t\t\t\n JUMP \t\t\t\n tag 341\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 4\t\t\t\n PUSH 0\t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n DUP2 \t\t\t\n SLOAD \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n MUL \t\t\t\n NOT \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n MUL \t\t\t\n OR \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH F0BE4F1E87349231D80C36B33F9E8639658EEAF474014DEE15A3E6A4D4414197\t\t\t\n DUP2 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 343\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 343\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 155\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 5\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 159\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 346\t\t\t\n PUSH [tag] 319\t\t\t\n JUMP \t\t\t\n tag 346\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 348\t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 349\t\t\t\n JUMP \t\t\t\n tag 348\t\t\t\n JUMPDEST \t\t\t\n JUMP \t\t\t\n tag 163\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 170\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n ADDRESS \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n EQ \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 174\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 6\t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 178\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n SWAP1 \t\t\t\n DIV \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 182\t\t\t\n JUMPDEST \t\t\t\n PUSH 60\t\t\t\n PUSH 9\t\t\t\n DUP1 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 355\t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 262\t\t\t\n JUMP \t\t\t\n tag 355\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n DUP1 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 356\t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 262\t\t\t\n JUMP \t\t\t\n tag 356\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 357\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n LT \t\t\t\n PUSH [tag] 358\t\t\t\n JUMPI \t\t\t\n PUSH 100\t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SLOAD \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n DUP4 \t\t\t\n MSTORE \t\t\t\n SWAP2 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n PUSH [tag] 357\t\t\t\n JUMP \t\t\t\n tag 358\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SWAP1 \t\t\t\n tag 359\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n SLOAD \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n PUSH 1\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n GT \t\t\t\n PUSH [tag] 359\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n SWAP1 \t\t\t\n SUB \t\t\t\n PUSH 1F\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n tag 357\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 186\t\t\t\n JUMPDEST \t\t\t\n PUSHIMMUTABLE 2778\t\t\t\n DUP2 \t\t\t\n JUMP \t\t\t\n tag 190\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 195\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 362\t\t\t\n PUSH [tag] 269\t\t\t\n JUMP \t\t\t\n tag 362\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 363\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 315\t\t\t\n JUMP \t\t\t\n tag 363\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 199\t\t\tme, _symbol, _lzEndpoin\n JUMPDEST \t\t\tme, _symbol, _lzEndpoin\n PUSH 2\t\t\tme, _symbol, _lzEndpoin\n PUSH 0\t\t\tme, _symbol, _lzEndpoin\n SWAP1 \t\t\tme, _symbol, _lzEndpoin\n SLOAD \t\t\tme, _symbol, _lzEndpoin\n SWAP1 \t\t\tme, _symbol, _lzEndpoin\n PUSH 100\t\t\tme, _symbol, _lzEndpoin\n EXP \t\t\tme, _symbol, _lzEndpoin\n SWAP1 \t\t\tme, _symbol, _lzEndpoin\n DIV \t\t\tme, _symbol, _lzEndpoin\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\tme, _symbol, _lzEndpoin\n AND \t\t\tme, _symbol, _lzEndpoin\n DUP2 \t\t\tme, _symbol, _lzEndpoin\n JUMP \t\t\tme, _symbol, _lzEndpoin\n tag 205\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 365\t\t\t\n PUSH [tag] 319\t\t\t\n JUMP \t\t\t\n tag 365\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 367\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 368\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 369\t\t\t\n JUMP \t\t\t\n tag 368\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 370\t\t\t\n JUMP \t\t\t\n tag 367\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 210\t\t\tl, _lzEndpoint, _delegate) Own...\n JUMPDEST \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 1\t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 20\t\t\tl, _lzEndpoint, _delegate) Own...\n MSTORE \t\t\tl, _lzEndpoint, _delegate) Own...\n DUP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 0\t\t\tl, _lzEndpoint, _delegate) Own...\n MSTORE \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 40\t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 0\t\t\tl, _lzEndpoint, _delegate) Own...\n KECCAK256 \t\t\tl, _lzEndpoint, _delegate) Own...\n PUSH 0\t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP2 \t\t\tl, _lzEndpoint, _delegate) Own...\n POP \t\t\tl, _lzEndpoint, _delegate) Own...\n SWAP1 \t\t\tl, _lzEndpoint, _delegate) Own...\n POP \t\t\tl, _lzEndpoint, _delegate) Own...\n SLOAD \t\t\tl, _lzEndpoint, _delegate) Own...\n DUP2 \t\t\tl, _lzEndpoint, _delegate) Own...\n JUMP \t\t\tl, _lzEndpoint, _delegate) Own...\n tag 217\t\t\t\n JUMPDEST \t\t\t\n PUSH 60\t\t\t\n PUSH 0\t\t\t\n PUSH 3\t\t\t\n PUSH 0\t\t\t\n DUP8 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n PUSH 0\t\t\t\n DUP7 \t\t\t\n PUSH FFFF\t\t\t\n AND \t\t\t\n PUSH FFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n DUP1 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 372\t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 262\t\t\t\n JUMP \t\t\t\n tag 372\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n DUP1 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 373\t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 262\t\t\t\n JUMP \t\t\t\n tag 373\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 374\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n LT \t\t\t\n PUSH [tag] 375\t\t\t\n JUMPI \t\t\t\n PUSH 100\t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SLOAD \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n DUP4 \t\t\t\n MSTORE \t\t\t\n SWAP2 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n PUSH [tag] 374\t\t\t\n JUMP \t\t\t\n tag 375\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SWAP1 \t\t\t\n tag 376\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n SLOAD \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n PUSH 1\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n GT \t\t\t\n PUSH [tag] 376\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n SWAP1 \t\t\t\n SUB \t\t\t\n PUSH 1F\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n tag 374\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SUB \t\t\t\n PUSH [tag] 377\t\t\t\n JUMPI \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP1 \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n CALLDATACOPY \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 371\t\t\t\n JUMP \t\t\t\n tag 377\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SUB \t\t\t\n PUSH [tag] 378\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 371\t\t\t\n JUMP \t\t\t\n tag 378\t\t\t\n JUMPDEST \t\t\t\n PUSH 2\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n LT \t\t\t\n PUSH [tag] 379\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 380\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP1 \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n CALLDATACOPY \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 381\t\t\t\n JUMP \t\t\t\n tag 380\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH 2\t\t\t\n SWAP1 \t\t\t\n DUP1 \t\t\t\n SWAP3 \t\t\t\n PUSH [tag] 382\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 383\t\t\t\n JUMP \t\t\t\n tag 382\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH [tag] 384\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 385\t\t\t\n JUMP \t\t\t\n tag 384\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 371\t\t\t\n JUMP \t\t\t\n tag 379\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 9A6D49CD00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 386\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 387\t\t\t\n JUMP \t\t\t\n tag 386\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 371\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 222\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n tag 389\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 390\t\t\t\n JUMPI \t\t\t\n CALLDATASIZE \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n PUSH [tag] 392\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 393\t\t\t\n PUSH [tag] 394\t\t\t\n JUMP \t\t\t\n tag 393\t\t\t\n JUMPDEST \t\t\t\n tag 392\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n MUL \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 395\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 396\t\t\t\n JUMP \t\t\t\n tag 395\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 397\t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 398\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 398\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH [tag] 140\t\t\t\n JUMP \t\t\t\n tag 397\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 399\t\t\t\n JUMPI \t\t\t\n POP \t\t\t\n PUSH [tag] 391\t\t\t\n JUMP \t\t\t\n tag 399\t\t\t\n JUMPDEST \t\t\t\n ADDRESS \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH D045A0DC\t\t\t\n DUP3 \t\t\t\n PUSH C0\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n DUP4 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH A0\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n DUP6 \t\t\t\n DUP1 \t\t\t\n PUSH 100\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 400\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 401\t\t\t\n JUMP \t\t\t\n tag 400\t\t\t\n JUMPDEST \t\t\t\n DUP8 \t\t\t\n PUSH E0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 402\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 150\t\t\t\n JUMP \t\t\t\n tag 402\t\t\t\n JUMPDEST \t\t\t\n DUP9 \t\t\t\n DUP1 \t\t\t\n PUSH 120\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 403\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 401\t\t\t\n JUMP \t\t\t\n tag 403\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP10 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 404\t\t\t\n SWAP8 \t\t\t\n SWAP7 \t\t\t\n SWAP6 \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 405\t\t\t\n JUMP \t\t\t\n tag 404\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n DUP9 \t\t\t\n DUP1 \t\t\t\n EXTCODESIZE \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 406\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 406\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n GAS \t\t\t\n CALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 408\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 408\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n tag 391\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP1 \t\t\t\n PUSH 1\t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 389\t\t\t\n JUMP \t\t\t\n tag 390\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n CALLER \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 8E9E7099\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n DUP7 \t\t\t\n GAS \t\t\t\n STATICCALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 410\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 410\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 411\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 412\t\t\t\n JUMP \t\t\t\n tag 411\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 8351EEA700000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 413\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 136\t\t\t\n JUMP \t\t\t\n tag 413\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 226\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 414\t\t\t\n PUSH [tag] 415\t\t\t\n JUMP \t\t\t\n tag 414\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 416\t\t\t\n PUSH [tag] 275\t\t\t\n JUMP \t\t\t\n tag 416\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 418\t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 419\t\t\t\n JUMP \t\t\t\n tag 418\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 232\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 421\t\t\t\n PUSH [tag] 319\t\t\t\n JUMP \t\t\t\n tag 421\t\t\t\n JUMPDEST \t\t\t\n PUSHIMMUTABLE 1386\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH CA5EB5E1\t\t\t\n DUP3 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 423\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 423\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n DUP8 \t\t\t\n DUP1 \t\t\t\n EXTCODESIZE \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 424\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 424\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n GAS \t\t\t\n CALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 426\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 426\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 235\t\t\t\n JUMPDEST \t\t\t\n ADDRESS \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n CALLER \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n EQ \t\t\t\n PUSH [tag] 428\t\t\t\n JUMPI \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 14D4A4E800000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 428\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 429\t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n PUSH [tag] 430\t\t\t\n JUMP \t\t\t\n tag 429\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 239\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 432\t\t\t\n PUSH [tag] 319\t\t\t\n JUMP \t\t\t\n tag 432\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 2\t\t\t\n PUSH 0\t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n DUP2 \t\t\t\n SLOAD \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n MUL \t\t\t\n NOT \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n MUL \t\t\t\n OR \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH D48D879CEF83A1C0BDDA516F27B13DDB1B3F8BBAC1C9E1511BB2A659C2427760\t\t\t\n DUP2 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 434\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 434\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 244\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 6\t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 249\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 437\t\t\t\n PUSH [tag] 319\t\t\t\n JUMP \t\t\t\n tag 437\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 439\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 1E4FBDF700000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 440\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 440\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 439\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 441\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 349\t\t\t\n JUMP \t\t\t\n tag 441\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 252\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n ADDRESS \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 258\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH 1\t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 444\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 444\t\t\t\n JUMPDEST \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SLOAD \t\t\t\n EQ \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 269\t\t\ty * 10 ** decimals());\\r\\n ...\n JUMPDEST \t\t\ty * 10 ** decimals());\\r\\n ...\n PUSH 0\t\t\t\n CALLER \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\ty * 10 ** decimals());\\r\\n ...\n JUMP \t\t\ty * 10 ** decimals());\\r\\n ...\n tag 271\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 447\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH 1\t\t\t\n PUSH [tag] 448\t\t\t\n JUMP \t\t\t\n tag 447\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 294\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 450\t\t\t\n DUP6 \t\t\t\n PUSH [tag] 451\t\t\t\n JUMP \t\t\t\n tag 450\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 452\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n DUP5 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 71C4EFED00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 453\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 454\t\t\t\n JUMP \t\t\t\n tag 453\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 452\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 300\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 1\t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH [tag] 456\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH F6FF4FB700000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 457\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 458\t\t\t\n JUMP \t\t\t\n tag 457\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 456\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 306\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 460\t\t\t\n PUSH [tag] 461\t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n PUSH [tag] 462\t\t\t\n JUMP \t\t\t\n tag 461\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 463\t\t\t\n JUMP \t\t\t\n tag 460\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 464\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 465\t\t\t\n PUSH [tag] 466\t\t\t\n DUP11 \t\t\t\n DUP11 \t\t\t\n PUSH [tag] 467\t\t\t\n JUMP \t\t\t\n tag 466\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 468\t\t\t\n JUMP \t\t\t\n tag 465\t\t\t\n JUMPDEST \t\t\t\n DUP12 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 469\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 469\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 470\t\t\t\n JUMP \t\t\t\n tag 464\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 471\t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n PUSH [tag] 472\t\t\t\n JUMP \t\t\t\n tag 471\t\t\t\n JUMPDEST \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 473\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 474\t\t\t\n DUP11 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 475\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 476\t\t\t\n JUMP \t\t\t\n tag 475\t\t\t\n JUMPDEST \t\t\t\n DUP12 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 477\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 477\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 478\t\t\t\n DUP13 \t\t\t\n DUP13 \t\t\t\n PUSH [tag] 479\t\t\t\n JUMP \t\t\t\n tag 478\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 480\t\t\t\n JUMP \t\t\t\n tag 474\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSHIMMUTABLE 1386\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 7CB59012\t\t\t\n DUP5 \t\t\t\n DUP12 \t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP6 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 481\t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 482\t\t\t\n JUMP \t\t\t\n tag 481\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n DUP8 \t\t\t\n DUP1 \t\t\t\n EXTCODESIZE \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 483\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 483\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n GAS \t\t\t\n CALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 485\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 485\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n tag 473\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP9 \t\t\t\n PUSH EFED6D3500546B29533B128A29E3A94D70788727F0507505AC12EAF2E578FD9C\t\t\t\n DUP12 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 486\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 486\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 487\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 488\t\t\t\n JUMP \t\t\t\n tag 487\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 313\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 490\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 244\t\t\t\n JUMP \t\t\t\n tag 490\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 491\t\t\t\n JUMPI \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 492\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH FB8F41B200000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 493\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 494\t\t\t\n JUMP \t\t\t\n tag 493\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 492\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 495\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 448\t\t\t\n JUMP \t\t\t\n tag 495\t\t\t\n JUMPDEST \t\t\t\n tag 491\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 315\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 497\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 96C6FD1E00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 498\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 498\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 497\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 499\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH EC442F0500000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 500\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 500\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 499\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 501\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 502\t\t\t\n JUMP \t\t\t\n tag 501\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 319\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 504\t\t\t\n PUSH [tag] 269\t\t\t\n JUMP \t\t\t\n tag 504\t\t\t\n JUMPDEST \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH [tag] 505\t\t\t\n PUSH [tag] 178\t\t\t\n JUMP \t\t\t\n tag 505\t\t\t\n JUMPDEST \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n EQ \t\t\t\n PUSH [tag] 506\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 507\t\t\t\n PUSH [tag] 269\t\t\t\n JUMP \t\t\t\n tag 507\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 118CDAA700000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 508\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 508\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 506\t\t\t\n JUMPDEST \t\t\t\n JUMP \t\t\t\n tag 322\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 1\t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH 238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 510\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 304\t\t\t\n JUMP \t\t\t\n tag 510\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG1 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 329\t\t\t\n JUMPDEST \t\t\t\n PUSH 60\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 512\t\t\t\n DUP6 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH [tag] 513\t\t\t\n DUP7 \t\t\t\n PUSH [tag] 514\t\t\t\n JUMP \t\t\t\n tag 513\t\t\t\n JUMPDEST \t\t\t\n DUP8 \t\t\t\n DUP1 \t\t\t\n PUSH A0\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 515\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 401\t\t\t\n JUMP \t\t\t\n tag 515\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n CALLDATACOPY \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 516\t\t\t\n JUMP \t\t\t\n tag 512\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 517\t\t\t\n JUMPI \t\t\t\n PUSH 1\t\t\t\n PUSH [tag] 518\t\t\t\n JUMP \t\t\t\n tag 517\t\t\t\n JUMPDEST \t\t\t\n PUSH 2\t\t\t\n tag 518\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 519\t\t\t\n DUP7 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 520\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 520\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n DUP9 \t\t\t\n DUP1 \t\t\t\n PUSH 80\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 521\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 401\t\t\t\n JUMP \t\t\t\n tag 521\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 217\t\t\t\n JUMP \t\t\t\n tag 519\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH 4\t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n SWAP1 \t\t\t\n DIV \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n EQ \t\t\t\n PUSH [tag] 522\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 43A78EB\t\t\t\n DUP7 \t\t\t\n DUP7 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 523\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 524\t\t\t\n JUMP \t\t\t\n tag 523\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n DUP7 \t\t\t\n GAS \t\t\t\n STATICCALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 526\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 526\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 527\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 528\t\t\t\n JUMP \t\t\t\n tag 527\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n tag 522\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 332\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 529\t\t\t\n PUSH [tag] 324\t\t\t\n JUMP \t\t\t\n tag 529\t\t\t\n JUMPDEST \t\t\t\n PUSHIMMUTABLE 1386\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH DDC28C58\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH A0\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n DUP9 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH [tag] 531\t\t\t\n DUP10 \t\t\t\n PUSH [tag] 300\t\t\t\n JUMP \t\t\t\n tag 531\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP8 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP7 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n ISZERO \t\t\t\n ISZERO \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n ADDRESS \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 532\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 533\t\t\t\n JUMP \t\t\t\n tag 532\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n DUP1 \t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n DUP7 \t\t\t\n GAS \t\t\t\n STATICCALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 535\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 535\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 536\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 537\t\t\t\n JUMP \t\t\t\n tag 536\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 349\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n SWAP1 \t\t\t\n DIV \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 100\t\t\t\n EXP \t\t\t\n DUP2 \t\t\t\n SLOAD \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n MUL \t\t\t\n NOT \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n MUL \t\t\t\n OR \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 370\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n tag 540\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 541\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 543\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n PUSH [tag] 544\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 545\t\t\t\n PUSH [tag] 394\t\t\t\n JUMP \t\t\t\n tag 545\t\t\t\n JUMPDEST \t\t\t\n tag 544\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 381\t\t\t\n JUMP \t\t\t\n tag 543\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n PUSH [tag] 546\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 547\t\t\t\n PUSH [tag] 394\t\t\t\n JUMP \t\t\t\n tag 547\t\t\t\n JUMPDEST \t\t\t\n tag 546\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH 3\t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n PUSH [tag] 548\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 549\t\t\t\n PUSH [tag] 394\t\t\t\n JUMP \t\t\t\n tag 549\t\t\t\n JUMPDEST \t\t\t\n tag 548\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n PUSH [tag] 550\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 551\t\t\t\n PUSH [tag] 394\t\t\t\n JUMP \t\t\t\n tag 551\t\t\t\n JUMPDEST \t\t\t\n tag 550\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH FFFF\t\t\t\n AND \t\t\t\n PUSH FFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n PUSH [tag] 552\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 553\t\t\t\n JUMP \t\t\t\n tag 552\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP1 \t\t\t\n PUSH 1\t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 540\t\t\t\n JUMP \t\t\t\n tag 541\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH BE4864A8E820971C0247F5992E2DA559595F7BF076A21CB5928D443D2A13B674\t\t\t\n DUP2 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 554\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 555\t\t\t\n JUMP \t\t\t\n tag 554\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 381\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 2\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 3\t\t\t \n PUSH FFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n PUSH FFFF\t\t\t\n AND \t\t\t\n EQ \t\t\t\n PUSH [tag] 557\t\t\t\n JUMPI \t\t\t\n DUP2 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 9A6D49CD00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 558\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 136\t\t\t\n JUMP \t\t\t\n tag 558\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 557\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 419\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 559\t\t\t\n PUSH [tag] 415\t\t\t\n JUMP \t\t\t\n tag 559\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 560\t\t\t\n PUSH [tag] 275\t\t\t\n JUMP \t\t\t\n tag 560\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 562\t\t\t\n CALLER \t\t\t\n DUP9 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n DUP10 \t\t\t\n PUSH 60\t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n DUP11 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 563\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 563\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 564\t\t\t\n JUMP \t\t\t\n tag 562\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 565\t\t\t\n DUP10 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 329\t\t\t\n JUMP \t\t\t\n tag 565\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 566\t\t\t\n DUP10 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 567\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 567\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP12 \t\t\t\n DUP1 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 568\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 569\t\t\t\n JUMP \t\t\t\n tag 568\t\t\t\n JUMPDEST \t\t\t\n DUP12 \t\t\t\n PUSH [tag] 570\t\t\t\n JUMP \t\t\t\n tag 566\t\t\t\n JUMPDEST \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n DUP6 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n CALLER \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP7 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH 85496B760A4B7F8D66384B9DF21B381F5D1B1E79F229A47AAF4C232EDC2FE59A\t\t\t\n DUP12 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 571\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 209\t\t\t\n JUMP \t\t\t\n tag 571\t\t\t\n JUMPDEST \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 572\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 573\t\t\t\n JUMP \t\t\t\n tag 572\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 430\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 575\t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n DUP8 \t\t\t\n PUSH [tag] 306\t\t\t\n JUMP \t\t\t\n tag 575\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 448\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 577\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH E602DF0500000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 578\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 578\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 577\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 579\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 94280D6200000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 580\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 580\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 579\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n PUSH 6\t\t\t\n PUSH 0\t\t\t\n DUP7 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 581\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925\t\t\t\n DUP5 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 582\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\n tag 582\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG3 \t\t\t\n tag 581\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 451\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSHIMMUTABLE 2778\t\t\t\n PUSHIMMUTABLE 2778\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 584\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 585\t\t\t\n JUMP \t\t\t\n tag 584\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 586\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 587\t\t\t\n JUMP \t\t\t\n tag 586\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 462\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n PUSH 20\t\t\tt \n PUSH FF\t\t\t\n AND \t\t\t\n SWAP3 \t\t\t\n PUSH [tag] 589\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 383\t\t\t\n JUMP \t\t\t\n tag 589\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 590\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 591\t\t\t\n JUMP \t\t\t\n tag 590\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 463\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n SHR \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 467\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH 20\t\t\tt \n PUSH FF\t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n PUSH 28\t\t\tpp\n PUSH FF\t\t\t\n AND \t\t\t\n SWAP3 \t\t\t\n PUSH [tag] 594\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 383\t\t\t\n JUMP \t\t\t\n tag 594\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 595\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 596\t\t\t\n JUMP \t\t\t\n tag 595\t\t\t\n JUMPDEST \t\t\t\n PUSH C0\t\t\t\n SHR \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 468\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSHIMMUTABLE 2778\t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH [tag] 598\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 587\t\t\t\n JUMP \t\t\t\n tag 598\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 470\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 600\t\t\t\n JUMPI \t\t\t\n PUSH DEAD\t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n tag 600\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 601\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 602\t\t\t\n JUMP \t\t\t\n tag 601\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 472\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 28\t\t\tpp\n PUSH FF\t\t\t\n AND \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n GT \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 479\t\t\t\n JUMPDEST \t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH 28\t\t\tpp\n PUSH FF\t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n DUP1 \t\t\t\n SWAP3 \t\t\t\n PUSH [tag] 605\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 383\t\t\t\n JUMP \t\t\t\n tag 605\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP1 \t\t\t\n PUSH 1F\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n DIV \t\t\t\n MUL \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n CALLDATACOPY \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 480\t\t\te, _initialSupply * 10 ** deci...\n JUMPDEST \t\t\te, _initialSupply * 10 ** deci...\n PUSH 60\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH [tag] 607\t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 608\t\t\t\n JUMP \t\t\t\n tag 607\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP5 \t\t\te, _initialSupply * 10 ** deci...\n SWAP4 \t\t\te, _initialSupply * 10 ** deci...\n POP \t\t\te, _initialSupply * 10 ** deci...\n POP \t\t\te, _initialSupply * 10 ** deci...\n POP \t\t\te, _initialSupply * 10 ** deci...\n POP \t\t\te, _initialSupply * 10 ** deci...\n JUMP \t\t\te, _initialSupply * 10 ** deci...\n tag 502\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 610\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n PUSH 7\t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 611\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 612\t\t\t\n JUMP \t\t\t\n tag 611\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH [tag] 613\t\t\t\n JUMP \t\t\t\n tag 610\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 5\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 614\t\t\t\n JUMPI \t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH E450D38C00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 615\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 494\t\t\t\n JUMP \t\t\t\n tag 615\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 614\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 5\t\t\t\n PUSH 0\t\t\t\n DUP7 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n tag 613\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 616\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n PUSH 7\t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SLOAD \t\t\t\n SUB \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH [tag] 617\t\t\t\n JUMP \t\t\t\n tag 616\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 5\t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SLOAD \t\t\t\n ADD \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n tag 617\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP4 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF\t\t\t\n DUP4 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH [tag] 618\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\n tag 618\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n LOG3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 514\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSHIMMUTABLE 2778\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 620\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 585\t\t\t\n JUMP \t\t\t\n tag 620\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 516\t\t\tnable(_delegate) {\\r\\n ...\n JUMPDEST \t\t\tnable(_delegate) {\\r\\n ...\n PUSH 60\t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n MLOAD \t\t\t\n GT \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n PUSH [tag] 622\t\t\t\n JUMPI \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH [tag] 623\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 624\t\t\t\n JUMP \t\t\t\n tag 623\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n PUSH [tag] 625\t\t\t\n JUMP \t\t\t\n tag 622\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 626\t\t\t\n CALLER \t\t\t\n PUSH [tag] 627\t\t\t\n JUMP \t\t\t\n tag 626\t\t\t\n JUMPDEST \t\t\t\n DUP6 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH [tag] 628\t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 629\t\t\t\n JUMP \t\t\t\n tag 628\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n tag 625\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\tnable(_delegate) {\\r\\n ...\n POP \t\t\tnable(_delegate) {\\r\\n ...\n SWAP4 \t\t\tnable(_delegate) {\\r\\n ...\n SWAP2 \t\t\tnable(_delegate) {\\r\\n ...\n POP \t\t\tnable(_delegate) {\\r\\n ...\n POP \t\t\tnable(_delegate) {\\r\\n ...\n JUMP \t\t\tnable(_delegate) {\\r\\n ...\n tag 564\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH [tag] 631\t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 294\t\t\t\n JUMP \t\t\t\n tag 631\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 632\t\t\t\n DUP7 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 633\t\t\t\n JUMP \t\t\t\n tag 632\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 570\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 634\t\t\t\n PUSH [tag] 415\t\t\t\n JUMP \t\t\t\n tag 634\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 636\t\t\t\n DUP5 \t\t\t\n PUSH 0\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 637\t\t\t\n JUMP \t\t\t\n tag 636\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 638\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 639\t\t\t\n DUP5 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 640\t\t\t\n JUMP \t\t\t\n tag 639\t\t\t\n JUMPDEST \t\t\t\n tag 638\t\t\t\n JUMPDEST \t\t\t\n PUSHIMMUTABLE 1386\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 2637A450\t\t\t\n DUP3 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH A0\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n DUP12 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH [tag] 641\t\t\t\n DUP13 \t\t\t\n PUSH [tag] 300\t\t\t\n JUMP \t\t\t\n tag 641\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP11 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n DUP10 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP10 \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n ISZERO \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n DUP7 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 642\t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 533\t\t\t\n JUMP \t\t\t\n tag 642\t\t\t\n JUMPDEST \t\t\t\n PUSH 80\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n DUP9 \t\t\t\n GAS \t\t\t\n CALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 644\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 644\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 645\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 646\t\t\t\n JUMP \t\t\t\n tag 645\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP6 \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 602\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 648\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH EC442F0500000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 649\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 649\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 648\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 650\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 502\t\t\t\n JUMP \t\t\t\n tag 650\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 627\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 0\t\t\t\n SHL \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 633\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 653\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 96C6FD1E00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 654\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 654\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 653\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 655\t\t\t\n DUP3 \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 502\t\t\t\n JUMP \t\t\t\n tag 655\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 637\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n CALLVALUE \t\t\t\n EQ \t\t\t\n PUSH [tag] 657\t\t\t\n JUMPI \t\t\t\n CALLVALUE \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 9F70412000000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 658\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 98\t\t\t\n JUMP \t\t\t\n tag 658\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 657\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 640\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSHIMMUTABLE 1386\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E4FE1D94\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n DUP7 \t\t\t\n GAS \t\t\t\n STATICCALL \t\t\t\n ISZERO \t\t\t\n DUP1 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 661\t\t\t\n JUMPI \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 661\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 662\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 280\t\t\t\n JUMP \t\t\t\n tag 662\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n SUB \t\t\t\n PUSH [tag] 663\t\t\t\n JUMPI \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 5373352A00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 663\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 664\t\t\t\n CALLER \t\t\t\n PUSHIMMUTABLE 1386\t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH [tag] 665\t\t\t\n SWAP1 \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH FFFFFFFF\t\t\t\n AND \t\t\t\n JUMP \t\t\t\n tag 664\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 665\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 667\t\t\t\n DUP5 \t\t\t\n DUP6 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n PUSH 23B872DD\t\t\t\n DUP7 \t\t\t\n DUP7 \t\t\t\n DUP7 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 24\t\t\t\n ADD \t\t\t\n PUSH [tag] 668\t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 669\t\t\t\n JUMP \t\t\t\n tag 668\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n SUB \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n SWAP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n DUP1 \t\t\t\n MLOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n DUP4 \t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n AND \t\t\t\n OR \t\t\t\n DUP4 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH [tag] 670\t\t\t\n JUMP \t\t\t\n tag 667\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 670\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 20\t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n MLOAD \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP9 \t\t\t\n GAS \t\t\t\n CALL \t\t\t\n DUP1 \t\t\t\n PUSH [tag] 672\t\t\t\n JUMPI \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n RETURNDATASIZE \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n RETURNDATACOPY \t\t\t\n RETURNDATASIZE \t\t\t\n DUP2 \t\t\t\n REVERT \t\t\t\n tag 672\t\t\t\n JUMPDEST \t\t\t\n RETURNDATASIZE \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n MLOAD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n EQ \t\t\t\n PUSH [tag] 673\t\t\t\n JUMPI \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 674\t\t\t\n JUMP \t\t\t\n tag 673\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n EXTCODESIZE \t\t\t\n EQ \t\t\t\n tag 674\t\t\t\n JUMPDEST \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 675\t\t\t\n JUMPI \t\t\t\n DUP4 \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n PUSH 5274AFE700000000000000000000000000000000000000000000000000000000\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 4\t\t\t\n ADD \t\t\t\n PUSH [tag] 676\t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n PUSH [tag] 74\t\t\t\n JUMP \t\t\t\n tag 676\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n REVERT \t\t\t\n tag 675\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 273\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 275\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 291\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 60\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 324\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 415\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n DUP1 \t\t\t\n PUSH 60\t\t\t\n ADD \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n NOT \t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n AND \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n ADD \t\t\t\n PUSH [tag] 677\t\t\t\n PUSH [tag] 324\t\t\t\n JUMP \t\t\t\n tag 677\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 678\t\t\t-License-Identifier: MIT\\r\\npr...\n JUMPDEST \t\t\t-License-Identifier: MIT\\r\\npr...\n PUSH 0\t\t\t\\r\\n// T\n DUP2 \t\t\ton of\n MLOAD \t\t\tentation of \n SWAP1 \t\t\tple implementation of \n POP \t\t\tple implementation of \n SWAP2 \t\t\t-License-Identifier: MIT\\r\\npr...\n SWAP1 \t\t\t-License-Identifier: MIT\\r\\npr...\n POP \t\t\t-License-Identifier: MIT\\r\\npr...\n JUMP \t\t\t-License-Identifier: MIT\\r\\npr...\n tag 679\t\t\thain Fungible Token) contract\\...\n JUMPDEST \t\t\thain Fungible Token) contract\\...\n PUSH 0\t\t\tis contract\n DUP3 \t\t\tfrom \"\n DUP3 \t\t\tle \n MSTORE \t\t\t{ Ownable } from \"@\n PUSH 20\t\t\table\n DUP3 \t\t\ts/O\n ADD \t\t\tccess/Ownable.\n SWAP1 \t\t\tlin/contracts/access/Ownable.\n POP \t\t\tlin/contracts/access/Ownable.\n SWAP3 \t\t\thain Fungible Token) contract\\...\n SWAP2 \t\t\thain Fungible Token) contract\\...\n POP \t\t\thain Fungible Token) contract\\...\n POP \t\t\thain Fungible Token) contract\\...\n JUMP \t\t\thain Fungible Token) contract\\...\n tag 680\t\t\tt { OFT } from \"@layerzerolabs...\n JUMPDEST \t\t\tt { OFT } from \"@layerzerolabs...\n PUSH 0\t\t\tF\n tag 841\t\t\t constructor(\\r\\n stri...\n JUMPDEST \t\t\t constructor(\\r\\n stri...\n DUP4 \t\t\t\\r\\n \n DUP2 \t\t\to\n LT \t\t\tuctor(\\r\\n \n ISZERO \t\t\t constructor(\\r\\n stri...\n PUSH [tag] 843\t\t\t constructor(\\r\\n stri...\n JUMPI \t\t\t constructor(\\r\\n stri...\n DUP1 \t\t\ti\n DUP3 \t\t\t_in\n ADD \t\t\t256 _initia\n MLOAD \t\t\t uint256 _initial\n DUP2 \t\t\t \n DUP5 \t\t\t,\\r\\n\n ADD \t\t\tmbol,\\r\\n \n MSTORE \t\t\tory _symbol,\\r\\n uint25...\n PUSH 20\t\t\ty \n DUP2 \t\t\tm\n ADD \t\t\tg memory _\n SWAP1 \t\t\tstring memory _\n POP \t\t\tstring memory _\n PUSH [tag] 841\t\t\t constructor(\\r\\n stri...\n JUMP \t\t\t constructor(\\r\\n stri...\n tag 843\t\t\t constructor(\\r\\n stri...\n JUMPDEST \t\t\t constructor(\\r\\n stri...\n PUSH 0\t\t\t \n DUP5 \t\t\t,\\r\\n \n DUP5 \t\t\tpoi\n ADD \t\t\tzEndpoint,\\r\\n \n MSTORE \t\t\tress _lzEndpoint,\\r\\n \n POP \t\t\tcontract MyOFT is OFT {\\r\\n\\r\\...\n POP \t\t\tt { OFT } from \"@layerzerolabs...\n POP \t\t\tt { OFT } from \"@layerzerolabs...\n POP \t\t\tt { OFT } from \"@layerzerolabs...\n JUMP \t\t\tt { OFT } from \"@layerzerolabs...\n tag 681\t\t\tegate\\r\\n ) OFT(_name, _sym...\n JUMPDEST \t\t\tegate\\r\\n ) OFT(_name, _sym...\n PUSH 0\t\t\tint, _\n PUSH 1F\t\t\t(_\n NOT \t\t\tmint(_d\n PUSH 1F\t\t\t \n DUP4 \t\t\t{\\r\\n \n ADD \t\t\tte) {\\r\\n \n AND \t\t\tlegate) {\\r\\n _mint(_de\n SWAP1 \t\t\twnable(_delegate) {\\r\\n ...\n POP \t\t\twnable(_delegate) {\\r\\n ...\n SWAP2 \t\t\tegate\\r\\n ) OFT(_name, _sym...\n SWAP1 \t\t\tegate\\r\\n ) OFT(_name, _sym...\n POP \t\t\tegate\\r\\n ) OFT(_name, _sym...\n JUMP \t\t\tegate\\r\\n ) OFT(_name, _sym...\n tag 682\t\t\ttialSupply * 10 ** decimals())...\n JUMPDEST \t\t\ttialSupply * 10 ** decimals())...\n PUSH 0\t\t\t\n PUSH [tag] 846\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 678\t\t\t\n JUMP \t\t\t\n tag 846\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 847\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 679\t\t\t\n JUMP \t\t\t\n tag 847\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n PUSH [tag] 848\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 680\t\t\t\n JUMP \t\t\t\n tag 848\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 849\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 681\t\t\t\n JUMP \t\t\t\n tag 849\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\ttialSupply * 10 ** decimals())...\n SWAP2 \t\t\ttialSupply * 10 ** decimals())...\n POP \t\t\ttialSupply * 10 ** decimals())...\n POP \t\t\ttialSupply * 10 ** decimals())...\n JUMP \t\t\ttialSupply * 10 ** decimals())...\n tag 55\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 851\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 682\t\t\t\n JUMP \t\t\t\n tag 851\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 683\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 684\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 685\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 686\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 687\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 857\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 686\t\t\t\n JUMP \t\t\t\n tag 857\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 688\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 859\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 687\t\t\t\n JUMP \t\t\t\n tag 859\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 860\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 860\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 689\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 862\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 688\t\t\t\n JUMP \t\t\t\n tag 862\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 690\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 691\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 865\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 865\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 866\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 866\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 692\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 868\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 691\t\t\t\n JUMP \t\t\t\n tag 868\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 59\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 870\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 871\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 871\t\t\t\n JUMPDEST \t\t\t\n tag 870\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 872\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 872\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 873\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 692\t\t\t\n JUMP \t\t\t\n tag 873\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 693\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n ISZERO \t\t\t\n ISZERO \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 694\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 876\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 693\t\t\t\n JUMP \t\t\t\n tag 876\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 62\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 878\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 694\t\t\t\n JUMP \t\t\t\n tag 878\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 695\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 696\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH E0\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 881\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 882\t\t\t\n PUSH [tag] 695\t\t\t\n JUMP \t\t\t\n tag 882\t\t\t\n JUMPDEST \t\t\t\n tag 881\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 66\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 884\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 885\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 885\t\t\t\n JUMPDEST \t\t\t\n tag 884\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 886\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 887\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 887\t\t\t\n JUMPDEST \t\t\t\n tag 886\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 888\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 696\t\t\t\n JUMP \t\t\t\n tag 888\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 697\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 890\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 890\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 698\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 892\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 697\t\t\t\n JUMP \t\t\t\n tag 892\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 893\t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 697\t\t\t\n JUMP \t\t\t\n tag 893\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 699\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 700\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 701\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 702\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 703\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 899\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 702\t\t\t\n JUMP \t\t\t\n tag 899\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 704\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 705\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 902\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 678\t\t\t\n JUMP \t\t\t\n tag 902\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 903\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 704\t\t\t\n JUMP \t\t\t\n tag 903\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n PUSH [tag] 904\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 680\t\t\t\n JUMP \t\t\t\n tag 904\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 905\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 681\t\t\t\n JUMP \t\t\t\n tag 905\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 706\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 907\t\t\t\n PUSH 0\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 703\t\t\t\n JUMP \t\t\t\n tag 907\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n SUB \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 908\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 705\t\t\t\n JUMP \t\t\t\n tag 908\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 707\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 910\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 706\t\t\t\n JUMP \t\t\t\n tag 910\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 708\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 709\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 913\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 699\t\t\t\n JUMP \t\t\t\n tag 913\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 914\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 700\t\t\t\n JUMP \t\t\t\n tag 914\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n DUP4 \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 915\t\t\t\n DUP6 \t\t\t\n PUSH [tag] 701\t\t\t\n JUMP \t\t\t\n tag 915\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n tag 916\t\t\t\n JUMPDEST \t\t\t\n DUP6 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 918\t\t\t\n JUMPI \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n DUP10 \t\t\t\n MSTORE \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 919\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 707\t\t\t\n JUMP \t\t\t\n tag 919\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n PUSH [tag] 920\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 708\t\t\t\n JUMP \t\t\t\n tag 920\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP11 \t\t\t\n ADD \t\t\t\n SWAP10 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 916\t\t\t\n JUMP \t\t\t\n tag 918\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n SWAP8 \t\t\t\n POP \t\t\t\n DUP8 \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 710\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 922\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 697\t\t\t\n JUMP \t\t\t\n tag 922\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 923\t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 697\t\t\t\n JUMP \t\t\t\n tag 923\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 69\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH A0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 925\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 698\t\t\t\n JUMP \t\t\t\n tag 925\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 926\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 709\t\t\t\n JUMP \t\t\t\n tag 926\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 927\t\t\t\n PUSH 60\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 710\t\t\t\n JUMP \t\t\t\n tag 927\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 711\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 929\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 687\t\t\t\n JUMP \t\t\t\n tag 929\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 74\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 931\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 711\t\t\t\n JUMP \t\t\t\n tag 931\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 712\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 933\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 934\t\t\t\n PUSH [tag] 695\t\t\t\n JUMP \t\t\t\n tag 934\t\t\t\n JUMPDEST \t\t\t\n tag 933\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 713\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 714\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 937\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 713\t\t\t\n JUMP \t\t\t\n tag 937\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 938\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 938\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 715\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 940\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 714\t\t\t\n JUMP \t\t\t\n tag 940\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 716\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 717\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 718\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 719\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n PUSH 1F\t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SLT \t\t\t\n PUSH [tag] 945\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 946\t\t\t\n PUSH [tag] 716\t\t\t\n JUMP \t\t\t\n tag 946\t\t\t\n JUMPDEST \t\t\t\n tag 945\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 947\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 948\t\t\t\n PUSH [tag] 717\t\t\t\n JUMP \t\t\t\n tag 948\t\t\t\n JUMPDEST \t\t\t\n tag 947\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP4 \t\t\t\n PUSH 1\t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 949\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 950\t\t\t\n PUSH [tag] 718\t\t\t\n JUMP \t\t\t\n tag 950\t\t\t\n JUMPDEST \t\t\t\n tag 949\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 77\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n PUSH E0\t\t\t\n DUP9 \t\t\t\n DUP11 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 952\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 953\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 953\t\t\t\n JUMPDEST \t\t\t\n tag 952\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 954\t\t\t\n DUP11 \t\t\t\n DUP3 \t\t\t\n DUP12 \t\t\t\n ADD \t\t\t\n PUSH [tag] 712\t\t\t\n JUMP \t\t\t\n tag 954\t\t\t\n JUMPDEST \t\t\t\n SWAP8 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 60\t\t\t\n PUSH [tag] 955\t\t\t\n DUP11 \t\t\t\n DUP3 \t\t\t\n DUP12 \t\t\t\n ADD \t\t\t\n PUSH [tag] 715\t\t\t\n JUMP \t\t\t\n tag 955\t\t\t\n JUMPDEST \t\t\t\n SWAP7 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 80\t\t\t\n DUP9 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 956\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 957\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 957\t\t\t\n JUMPDEST \t\t\t\n tag 956\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 958\t\t\t\n DUP11 \t\t\t\n DUP3 \t\t\t\n DUP12 \t\t\t\n ADD \t\t\t\n PUSH [tag] 719\t\t\t\n JUMP \t\t\t\n tag 958\t\t\t\n JUMPDEST \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH A0\t\t\t\n PUSH [tag] 959\t\t\t\n DUP11 \t\t\t\n DUP3 \t\t\t\n DUP12 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 959\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH C0\t\t\t\n DUP9 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 960\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 961\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 961\t\t\t\n JUMPDEST \t\t\t\n tag 960\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 962\t\t\t\n DUP11 \t\t\t\n DUP3 \t\t\t\n DUP12 \t\t\t\n ADD \t\t\t\n PUSH [tag] 719\t\t\t\n JUMP \t\t\t\n tag 962\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP6 \t\t\t\n SWAP9 \t\t\t\n SWAP2 \t\t\t\n SWAP5 \t\t\t\n SWAP8 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 720\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFF\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 721\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 965\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 720\t\t\t\n JUMP \t\t\t\n tag 965\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 83\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 967\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 721\t\t\t\n JUMP \t\t\t\n tag 967\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 722\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFF00000000000000000000000000000000000000000000000000000000\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 723\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 970\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 722\t\t\t\n JUMP \t\t\t\n tag 970\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 724\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 725\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 973\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 724\t\t\t\n JUMP \t\t\t\n tag 973\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 88\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 975\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 723\t\t\t\n JUMP \t\t\t\n tag 975\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 976\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 725\t\t\t\n JUMP \t\t\t\n tag 976\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 93\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 978\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 725\t\t\t\n JUMP \t\t\t\n tag 978\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 979\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 725\t\t\t\n JUMP \t\t\t\n tag 979\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 726\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 981\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 981\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 98\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 983\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 983\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 106\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP5 \t\t\t\n DUP7 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 985\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 986\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 986\t\t\t\n JUMPDEST \t\t\t\n tag 985\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 987\t\t\t\n DUP7 \t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 987\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 988\t\t\t\n DUP7 \t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 988\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n PUSH [tag] 989\t\t\t\n DUP7 \t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n ADD \t\t\t\n PUSH [tag] 692\t\t\t\n JUMP \t\t\t\n tag 989\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n JUMP \t\t\t\n tag 727\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FF\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 728\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 992\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 727\t\t\t\n JUMP \t\t\t\n tag 992\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 113\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 994\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 728\t\t\t\n JUMP \t\t\t\n tag 994\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 729\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFF\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 730\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 997\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 729\t\t\t\n JUMP \t\t\t\n tag 997\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 998\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 998\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 731\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1000\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 730\t\t\t\n JUMP \t\t\t\n tag 1000\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 117\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1002\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1003\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1003\t\t\t\n JUMPDEST \t\t\t\n tag 1002\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1004\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 731\t\t\t\n JUMP \t\t\t\n tag 1004\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1005\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 715\t\t\t\n JUMP \t\t\t\n tag 1005\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 732\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1007\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 693\t\t\t\n JUMP \t\t\t\n tag 1007\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 1008\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 1008\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 733\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1010\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 732\t\t\t\n JUMP \t\t\t\n tag 1010\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 122\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1012\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1013\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1013\t\t\t\n JUMPDEST \t\t\t\n tag 1012\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1014\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1015\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 1015\t\t\t\n JUMPDEST \t\t\t\n tag 1014\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1016\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 696\t\t\t\n JUMP \t\t\t\n tag 1016\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1017\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 733\t\t\t\n JUMP \t\t\t\n tag 1017\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 734\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1019\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 697\t\t\t\n JUMP \t\t\t\n tag 1019\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1020\t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 697\t\t\t\n JUMP \t\t\t\n tag 1020\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 125\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1022\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 734\t\t\t\n JUMP \t\t\t\n tag 1022\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 735\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1024\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 720\t\t\t\n JUMP \t\t\t\n tag 1024\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 1025\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 1025\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 736\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1027\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 735\t\t\t\n JUMP \t\t\t\n tag 1027\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 133\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1029\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1030\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1030\t\t\t\n JUMPDEST \t\t\t\n tag 1029\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1031\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 731\t\t\t\n JUMP \t\t\t\n tag 1031\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1032\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 736\t\t\t\n JUMP \t\t\t\n tag 1032\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 737\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 738\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 739\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1036\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 737\t\t\t\n JUMP \t\t\t\n tag 1036\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1037\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 738\t\t\t\n JUMP \t\t\t\n tag 1037\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n PUSH [tag] 1038\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 680\t\t\t\n JUMP \t\t\t\n tag 1038\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1039\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 681\t\t\t\n JUMP \t\t\t\n tag 1039\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 136\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1041\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 739\t\t\t\n JUMP \t\t\t\n tag 1041\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 740\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 741\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1044\t\t\t\n PUSH [tag] 1045\t\t\t\n PUSH [tag] 1046\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 686\t\t\t\n JUMP \t\t\t\n tag 1046\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 740\t\t\t\n JUMP \t\t\t\n tag 1045\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 686\t\t\t\n JUMP \t\t\t\n tag 1044\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 742\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1048\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 741\t\t\t\n JUMP \t\t\t\n tag 1048\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 743\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1050\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 742\t\t\t\n JUMP \t\t\t\n tag 1050\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 744\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1052\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 743\t\t\t\n JUMP \t\t\t\n tag 1052\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 146\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1054\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 744\t\t\t\n JUMP \t\t\t\n tag 1054\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 150\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1056\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1057\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1057\t\t\t\n JUMPDEST \t\t\t\n tag 1056\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1058\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 1058\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 165\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1060\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 725\t\t\t\n JUMP \t\t\t\n tag 1060\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 169\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH A0\t\t\t\n DUP6 \t\t\t\n DUP8 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1062\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1063\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1063\t\t\t\n JUMPDEST \t\t\t\n tag 1062\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1064\t\t\t\n DUP8 \t\t\t\n DUP3 \t\t\t\n DUP9 \t\t\t\n ADD \t\t\t\n PUSH [tag] 712\t\t\t\n JUMP \t\t\t\n tag 1064\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 60\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1065\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1066\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 1066\t\t\t\n JUMPDEST \t\t\t\n tag 1065\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1067\t\t\t\n DUP8 \t\t\t\n DUP3 \t\t\t\n DUP9 \t\t\t\n ADD \t\t\t\n PUSH [tag] 719\t\t\t\n JUMP \t\t\t\n tag 1067\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 80\t\t\t\n PUSH [tag] 1068\t\t\t\n DUP8 \t\t\t\n DUP3 \t\t\t\n DUP9 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 1068\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP6 \t\t\t\n SWAP2 \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 745\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n PUSH 1F\t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SLT \t\t\t\n PUSH [tag] 1070\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1071\t\t\t\n PUSH [tag] 716\t\t\t\n JUMP \t\t\t\n tag 1071\t\t\t\n JUMPDEST \t\t\t\n tag 1070\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1072\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1073\t\t\t\n PUSH [tag] 717\t\t\t\n JUMP \t\t\t\n tag 1073\t\t\t\n JUMPDEST \t\t\t\n tag 1072\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP4 \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1074\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1075\t\t\t\n PUSH [tag] 718\t\t\t\n JUMP \t\t\t\n tag 1075\t\t\t\n JUMPDEST \t\t\t\n tag 1074\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 204\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1077\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1078\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1078\t\t\t\n JUMPDEST \t\t\t\n tag 1077\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1079\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1080\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 1080\t\t\t\n JUMPDEST \t\t\t\n tag 1079\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1081\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 745\t\t\t\n JUMP \t\t\t\n tag 1081\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 209\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1083\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1084\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1084\t\t\t\n JUMPDEST \t\t\t\n tag 1083\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1085\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 731\t\t\t\n JUMP \t\t\t\n tag 1085\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 746\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1087\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 713\t\t\t\n JUMP \t\t\t\n tag 1087\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 212\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1089\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 746\t\t\t\n JUMP \t\t\t\n tag 1089\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 216\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 60\t\t\t\n DUP6 \t\t\t\n DUP8 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1091\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1092\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1092\t\t\t\n JUMPDEST \t\t\t\n tag 1091\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1093\t\t\t\n DUP8 \t\t\t\n DUP3 \t\t\t\n DUP9 \t\t\t\n ADD \t\t\t\n PUSH [tag] 731\t\t\t\n JUMP \t\t\t\n tag 1093\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1094\t\t\t\n DUP8 \t\t\t\n DUP3 \t\t\t\n DUP9 \t\t\t\n ADD \t\t\t\n PUSH [tag] 736\t\t\t\n JUMP \t\t\t\n tag 1094\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1095\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1096\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 1096\t\t\t\n JUMPDEST \t\t\t\n tag 1095\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1097\t\t\t\n DUP8 \t\t\t\n DUP3 \t\t\t\n DUP9 \t\t\t\n ADD \t\t\t\n PUSH [tag] 719\t\t\t\n JUMP \t\t\t\n tag 1097\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP6 \t\t\t\n SWAP2 \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 747\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n PUSH 1F\t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SLT \t\t\t\n PUSH [tag] 1099\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1100\t\t\t\n PUSH [tag] 716\t\t\t\n JUMP \t\t\t\n tag 1100\t\t\t\n JUMPDEST \t\t\t\n tag 1099\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1101\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1102\t\t\t\n PUSH [tag] 717\t\t\t\n JUMP \t\t\t\n tag 1102\t\t\t\n JUMPDEST \t\t\t\n tag 1101\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP4 \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1103\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1104\t\t\t\n PUSH [tag] 718\t\t\t\n JUMP \t\t\t\n tag 1104\t\t\t\n JUMPDEST \t\t\t\n tag 1103\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 221\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1106\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1107\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1107\t\t\t\n JUMPDEST \t\t\t\n tag 1106\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1108\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1109\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 1109\t\t\t\n JUMPDEST \t\t\t\n tag 1108\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1110\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 747\t\t\t\n JUMP \t\t\t\n tag 1110\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 748\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1112\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1113\t\t\t\n PUSH [tag] 695\t\t\t\n JUMP \t\t\t\n tag 1113\t\t\t\n JUMPDEST \t\t\t\n tag 1112\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 225\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n PUSH 80\t\t\t\n DUP5 \t\t\t\n DUP7 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1115\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1116\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1116\t\t\t\n JUMPDEST \t\t\t\n tag 1115\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1117\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1118\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 1118\t\t\t\n JUMPDEST \t\t\t\n tag 1117\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1119\t\t\t\n DUP7 \t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n ADD \t\t\t\n PUSH [tag] 696\t\t\t\n JUMP \t\t\t\n tag 1119\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1120\t\t\t\n DUP7 \t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n ADD \t\t\t\n PUSH [tag] 748\t\t\t\n JUMP \t\t\t\n tag 1120\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 60\t\t\t\n PUSH [tag] 1121\t\t\t\n DUP7 \t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 1121\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n JUMP \t\t\t\n tag 749\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1123\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 713\t\t\t\n JUMP \t\t\t\n tag 1123\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 750\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1125\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 724\t\t\t\n JUMP \t\t\t\n tag 1125\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 751\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1127\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 697\t\t\t\n JUMP \t\t\t\n tag 1127\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1128\t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 697\t\t\t\n JUMP \t\t\t\n tag 1128\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 752\t\t\t\n JUMPDEST \t\t\t\n PUSH 80\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1130\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 749\t\t\t\n JUMP \t\t\t\n tag 1130\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1131\t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 750\t\t\t\n JUMP \t\t\t\n tag 1131\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1132\t\t\t\n PUSH 40\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 751\t\t\t\n JUMP \t\t\t\n tag 1132\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 228\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH C0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1134\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 752\t\t\t\n JUMP \t\t\t\n tag 1134\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1135\t\t\t\n PUSH 80\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 710\t\t\t\n JUMP \t\t\t\n tag 1135\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 243\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1137\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1138\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1138\t\t\t\n JUMPDEST \t\t\t\n tag 1137\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1139\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 1139\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1140\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 689\t\t\t\n JUMP \t\t\t\n tag 1140\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 257\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1142\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1143\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1143\t\t\t\n JUMPDEST \t\t\t\n tag 1142\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1144\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 712\t\t\t\n JUMP \t\t\t\n tag 1144\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 753\t\t\t\n JUMPDEST \t\t\t\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 22\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 262\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 2\t\t\t\n DUP3 \t\t\t\n DIV \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 1\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n DUP1 \t\t\t\n PUSH [tag] 1147\t\t\t\n JUMPI \t\t\t\n PUSH 7F\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n tag 1147\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n LT \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH [tag] 1148\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1149\t\t\t\n PUSH [tag] 753\t\t\t\n JUMP \t\t\t\n tag 1149\t\t\t\n JUMPDEST \t\t\t\n tag 1148\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 754\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1151\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 688\t\t\t\n JUMP \t\t\t\n tag 1151\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 280\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1153\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1154\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1154\t\t\t\n JUMPDEST \t\t\t\n tag 1153\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1155\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 754\t\t\t\n JUMP \t\t\t\n tag 1155\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 755\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1157\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 691\t\t\t\n JUMP \t\t\t\n tag 1157\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 284\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1159\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1160\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1160\t\t\t\n JUMPDEST \t\t\t\n tag 1159\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1161\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 755\t\t\t\n JUMP \t\t\t\n tag 1161\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 287\t\t\t\n JUMPDEST \t\t\t\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 41\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 756\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1164\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 729\t\t\t\n JUMP \t\t\t\n tag 1164\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 304\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1166\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 756\t\t\t\n JUMP \t\t\t\n tag 1166\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1167\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 746\t\t\t\n JUMP \t\t\t\n tag 1167\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 757\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1169\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 681\t\t\t\n JUMP \t\t\t\n tag 1169\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n OR \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1170\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1171\t\t\t\n PUSH [tag] 287\t\t\t\n JUMP \t\t\t\n tag 1171\t\t\t\n JUMPDEST \t\t\t\n tag 1170\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 758\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1173\t\t\t\n PUSH [tag] 683\t\t\t\n JUMP \t\t\t\n tag 1173\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1174\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 757\t\t\t\n JUMP \t\t\t\n tag 1174\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 759\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1176\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1177\t\t\t\n PUSH [tag] 287\t\t\t\n JUMP \t\t\t\n tag 1177\t\t\t\n JUMPDEST \t\t\t\n tag 1176\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 760\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 761\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 762\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 763\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1182\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1183\t\t\t\n PUSH [tag] 287\t\t\t\n JUMP \t\t\t\n tag 1183\t\t\t\n JUMPDEST \t\t\t\n tag 1182\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1184\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 681\t\t\t\n JUMP \t\t\t\n tag 1184\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 764\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n CALLDATACOPY \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 765\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1187\t\t\t\n PUSH [tag] 1188\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 763\t\t\t\n JUMP \t\t\t\n tag 1188\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 758\t\t\t\n JUMP \t\t\t\n tag 1187\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1189\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1190\t\t\t\n PUSH [tag] 762\t\t\t\n JUMP \t\t\t\n tag 1190\t\t\t\n JUMPDEST \t\t\t\n tag 1189\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1191\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 764\t\t\t\n JUMP \t\t\t\n tag 1191\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 766\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SLT \t\t\t\n PUSH [tag] 1193\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1194\t\t\t\n PUSH [tag] 716\t\t\t\n JUMP \t\t\t\n tag 1194\t\t\t\n JUMPDEST \t\t\t\n tag 1193\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n PUSH [tag] 1195\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 765\t\t\t\n JUMP \t\t\t\n tag 1195\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 767\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1197\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1198\t\t\t\n PUSH [tag] 760\t\t\t\n JUMP \t\t\t\n tag 1198\t\t\t\n JUMPDEST \t\t\t\n tag 1197\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1199\t\t\t\n PUSH 60\t\t\t\n PUSH [tag] 758\t\t\t\n JUMP \t\t\t\n tag 1199\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1200\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 731\t\t\t\n JUMP \t\t\t\n tag 1200\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1201\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 736\t\t\t\n JUMP \t\t\t\n tag 1201\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1202\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1203\t\t\t\n PUSH [tag] 761\t\t\t\n JUMP \t\t\t\n tag 1203\t\t\t\n JUMPDEST \t\t\t\n tag 1202\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1204\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 766\t\t\t\n JUMP \t\t\t\n tag 1204\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 768\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1206\t\t\t\n PUSH [tag] 1207\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 759\t\t\t\n JUMP \t\t\t\n tag 1207\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 758\t\t\t\n JUMP \t\t\t\n tag 1206\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP5 \t\t\t\n MUL \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1208\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1209\t\t\t\n PUSH [tag] 718\t\t\t\n JUMP \t\t\t\n tag 1209\t\t\t\n JUMPDEST \t\t\t\n tag 1208\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n tag 1210\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1212\t\t\t\n JUMPI \t\t\t\n DUP1 \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1213\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1214\t\t\t\n PUSH [tag] 716\t\t\t\n JUMP \t\t\t\n tag 1214\t\t\t\n JUMPDEST \t\t\t\n tag 1213\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 1215\t\t\t\n DUP10 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 767\t\t\t\n JUMP \t\t\t\n tag 1215\t\t\t\n JUMPDEST \t\t\t\n DUP6 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1210\t\t\t\n JUMP \t\t\t\n tag 1212\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 369\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1217\t\t\t\n CALLDATASIZE \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 768\t\t\t\n JUMP \t\t\t\n tag 1217\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 769\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 770\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 383\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n DUP6 \t\t\t\n DUP6 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1221\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1222\t\t\t\n PUSH [tag] 769\t\t\t\n JUMP \t\t\t\n tag 1222\t\t\t\n JUMPDEST \t\t\t\n tag 1221\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n DUP7 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1223\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1224\t\t\t\n PUSH [tag] 770\t\t\t\n JUMP \t\t\t\n tag 1224\t\t\t\n JUMPDEST \t\t\t\n tag 1223\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n DUP6 \t\t\t\n MUL \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP5 \t\t\t\n DUP7 \t\t\t\n SUB \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 771\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 772\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1227\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 737\t\t\t\n JUMP \t\t\t\n tag 1227\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1228\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 771\t\t\t\n JUMP \t\t\t\n tag 1228\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n PUSH [tag] 1229\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 680\t\t\t\n JUMP \t\t\t\n tag 1229\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 773\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1231\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 771\t\t\t\n JUMP \t\t\t\n tag 1231\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n PUSH [tag] 1232\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 764\t\t\t\n JUMP \t\t\t\n tag 1232\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 385\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1234\t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 772\t\t\t\n JUMP \t\t\t\n tag 1234\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1235\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 773\t\t\t\n JUMP \t\t\t\n tag 1235\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 774\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1237\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 738\t\t\t\n JUMP \t\t\t\n tag 1237\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n PUSH [tag] 1238\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 764\t\t\t\n JUMP \t\t\t\n tag 1238\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1239\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 681\t\t\t\n JUMP \t\t\t\n tag 1239\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 387\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1241\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 774\t\t\t\n JUMP \t\t\t\n tag 1241\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 394\t\t\t\n JUMPDEST \t\t\t\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 32\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 775\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 776\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 777\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 396\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n CALLDATALOAD \t\t\t\n PUSH 1\t\t\t\n PUSH 140\t\t\t\n SUB \t\t\t\n DUP4 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n SLT \t\t\t\n PUSH [tag] 1247\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1248\t\t\t\n PUSH [tag] 775\t\t\t\n JUMP \t\t\t\n tag 1248\t\t\t\n JUMPDEST \t\t\t\n tag 1247\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 401\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n CALLDATALOAD \t\t\t\n PUSH 1\t\t\t\n PUSH 20\t\t\t\n SUB \t\t\t\n DUP5 \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n SUB \t\t\t\n DUP2 \t\t\t\n SLT \t\t\t\n PUSH [tag] 1250\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1251\t\t\t\n PUSH [tag] 775\t\t\t\n JUMP \t\t\t\n tag 1251\t\t\t\n JUMPDEST \t\t\t\n tag 1250\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1252\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1253\t\t\t\n PUSH [tag] 776\t\t\t\n JUMP \t\t\t\n tag 1253\t\t\t\n JUMPDEST \t\t\t\n tag 1252\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n PUSH 1\t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n CALLDATASIZE \t\t\t\n SUB \t\t\t\n DUP4 \t\t\t\n SGT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1254\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1255\t\t\t\n PUSH [tag] 777\t\t\t\n JUMP \t\t\t\n tag 1255\t\t\t\n JUMPDEST \t\t\t\n tag 1254\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 778\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1257\t\t\t\n PUSH 20\t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 731\t\t\t\n JUMP \t\t\t\n tag 1257\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 779\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1259\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 729\t\t\t\n JUMP \t\t\t\n tag 1259\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 780\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1261\t\t\t\n PUSH 20\t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 715\t\t\t\n JUMP \t\t\t\n tag 1261\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 781\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1263\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 724\t\t\t\n JUMP \t\t\t\n tag 1263\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 1264\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP1 \t\t\t\n REVERT \t\t\t\n tag 1264\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 782\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1266\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 781\t\t\t\n JUMP \t\t\t\n tag 1266\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 783\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1268\t\t\t\n PUSH 20\t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 782\t\t\t\n JUMP \t\t\t\n tag 1268\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 784\t\t\t\n JUMPDEST \t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n PUSH [tag] 1270\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 778\t\t\t\n JUMP \t\t\t\n tag 1270\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1271\t\t\t\n PUSH 0\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 779\t\t\t\n JUMP \t\t\t\n tag 1271\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 1272\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 780\t\t\t\n JUMP \t\t\t\n tag 1272\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1273\t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 749\t\t\t\n JUMP \t\t\t\n tag 1273\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH [tag] 1274\t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 783\t\t\t\n JUMP \t\t\t\n tag 1274\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1275\t\t\t\n PUSH 40\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 750\t\t\t\n JUMP \t\t\t\n tag 1275\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 405\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH E0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1277\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP11 \t\t\t\n PUSH [tag] 784\t\t\t\n JUMP \t\t\t\n tag 1277\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1278\t\t\t\n PUSH 60\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP10 \t\t\t\n PUSH [tag] 746\t\t\t\n JUMP \t\t\t\n tag 1278\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 80\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1279\t\t\t\n DUP2 \t\t\t\n DUP8 \t\t\t\n DUP10 \t\t\t\n PUSH [tag] 774\t\t\t\n JUMP \t\t\t\n tag 1279\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1280\t\t\t\n PUSH A0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 711\t\t\t\n JUMP \t\t\t\n tag 1280\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH C0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1281\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 774\t\t\t\n JUMP \t\t\t\n tag 1281\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP9 \t\t\t\n SWAP8 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 785\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1283\t\t\t\n PUSH [tag] 1284\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 763\t\t\t\n JUMP \t\t\t\n tag 1284\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 758\t\t\t\n JUMP \t\t\t\n tag 1283\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1285\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1286\t\t\t\n PUSH [tag] 762\t\t\t\n JUMP \t\t\t\n tag 1286\t\t\t\n JUMPDEST \t\t\t\n tag 1285\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1287\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 680\t\t\t\n JUMP \t\t\t\n tag 1287\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 786\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SLT \t\t\t\n PUSH [tag] 1289\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1290\t\t\t\n PUSH [tag] 716\t\t\t\n JUMP \t\t\t\n tag 1290\t\t\t\n JUMPDEST \t\t\t\n tag 1289\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1291\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 785\t\t\t\n JUMP \t\t\t\n tag 1291\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 412\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1293\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1294\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1294\t\t\t\n JUMPDEST \t\t\t\n tag 1293\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1295\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1296\t\t\t\n PUSH [tag] 685\t\t\t\n JUMP \t\t\t\n tag 1296\t\t\t\n JUMPDEST \t\t\t\n tag 1295\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1297\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 786\t\t\t\n JUMP \t\t\t\n tag 1297\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 454\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1299\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 1299\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1300\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 1300\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 458\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1302\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 756\t\t\t\n JUMP \t\t\t\n tag 1302\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 476\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1304\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1305\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1305\t\t\t\n JUMPDEST \t\t\t\n tag 1304\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1306\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 782\t\t\t\n JUMP \t\t\t\n tag 1306\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 787\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 788\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1309\t\t\t\n PUSH [tag] 1310\t\t\t\n PUSH [tag] 1311\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 787\t\t\t\n JUMP \t\t\t\n tag 1311\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 740\t\t\t\n JUMP \t\t\t\n tag 1310\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 720\t\t\t\n JUMP \t\t\t\n tag 1309\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 789\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1313\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 788\t\t\t\n JUMP \t\t\t\n tag 1313\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 482\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 80\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1315\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP8 \t\t\t\n PUSH [tag] 711\t\t\t\n JUMP \t\t\t\n tag 1315\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1316\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 746\t\t\t\n JUMP \t\t\t\n tag 1316\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1317\t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 789\t\t\t\n JUMP \t\t\t\n tag 1317\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 60\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1318\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 739\t\t\t\n JUMP \t\t\t\n tag 1318\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP6 \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 488\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1320\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 756\t\t\t\n JUMP \t\t\t\n tag 1320\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1321\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 1321\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 494\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1323\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 711\t\t\t\n JUMP \t\t\t\n tag 1323\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1324\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 1324\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1325\t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 1325\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 524\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1327\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 739\t\t\t\n JUMP \t\t\t\n tag 1327\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1328\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 739\t\t\t\n JUMP \t\t\t\n tag 1328\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 790\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1330\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 732\t\t\t\n JUMP \t\t\t\n tag 1330\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 528\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1332\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1333\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1333\t\t\t\n JUMPDEST \t\t\t\n tag 1332\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1334\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 790\t\t\t\n JUMP \t\t\t\n tag 1334\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 791\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 792\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1337\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 737\t\t\t\n JUMP \t\t\t\n tag 1337\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1338\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 791\t\t\t\n JUMP \t\t\t\n tag 1338\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n PUSH [tag] 1339\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 680\t\t\t\n JUMP \t\t\t\n tag 1339\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1340\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 681\t\t\t\n JUMP \t\t\t\n tag 1340\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 793\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1342\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 693\t\t\t\n JUMP \t\t\t\n tag 1342\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 794\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH A0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1344\t\t\t\n PUSH 0\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 779\t\t\t\n JUMP \t\t\t\n tag 1344\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1345\t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 749\t\t\t\n JUMP \t\t\t\n tag 1345\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n SUB \t\t\t\n PUSH 40\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1346\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 792\t\t\t\n JUMP \t\t\t\n tag 1346\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 60\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n SUB \t\t\t\n PUSH 60\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1347\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 792\t\t\t\n JUMP \t\t\t\n tag 1347\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 80\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1348\t\t\t\n PUSH 80\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 793\t\t\t\n JUMP \t\t\t\n tag 1348\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 533\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1350\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 794\t\t\t\n JUMP \t\t\t\n tag 1350\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1351\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 711\t\t\t\n JUMP \t\t\t\n tag 1351\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 795\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1353\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1354\t\t\t\n PUSH [tag] 760\t\t\t\n JUMP \t\t\t\n tag 1354\t\t\t\n JUMPDEST \t\t\t\n tag 1353\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1355\t\t\t\n PUSH 40\t\t\t\n PUSH [tag] 758\t\t\t\n JUMP \t\t\t\n tag 1355\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1356\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 755\t\t\t\n JUMP \t\t\t\n tag 1356\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1357\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 755\t\t\t\n JUMP \t\t\t\n tag 1357\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 537\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1359\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1360\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1360\t\t\t\n JUMPDEST \t\t\t\n tag 1359\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1361\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 795\t\t\t\n JUMP \t\t\t\n tag 1361\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 796\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n PUSH 0\t\t\t\n KECCAK256 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 797\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DIV \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 798\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SHL \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 799\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 8\t\t\t\n DUP4 \t\t\t\n MUL \t\t\t\n PUSH [tag] 1366\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 798\t\t\t\n JUMP \t\t\t\n tag 1366\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1367\t\t\t\n DUP7 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 798\t\t\t\n JUMP \t\t\t\n tag 1367\t\t\t\n JUMPDEST \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n NOT \t\t\t\n DUP5 \t\t\t\n AND \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP7 \t\t\t\n AND \t\t\t\n DUP5 \t\t\t\n OR \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 800\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1369\t\t\t\n PUSH [tag] 1370\t\t\t\n PUSH [tag] 1371\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1371\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 740\t\t\t\n JUMP \t\t\t\n tag 1370\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1369\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 801\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 802\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1374\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 800\t\t\t\n JUMP \t\t\t\n tag 1374\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1375\t\t\t\n PUSH [tag] 1376\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 801\t\t\t\n JUMP \t\t\t\n tag 1376\t\t\t\n JUMPDEST \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 799\t\t\t\n JUMP \t\t\t\n tag 1375\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 803\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n SWAP1 \t\t\t\n JUMP \t\t\t\n tag 804\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1379\t\t\t\n PUSH [tag] 803\t\t\t\n JUMP \t\t\t\n tag 1379\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1380\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 802\t\t\t\n JUMP \t\t\t\n tag 1380\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 805\t\t\t\n JUMPDEST \t\t\t\n tag 1382\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1384\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1385\t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 804\t\t\t\n JUMP \t\t\t\n tag 1385\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1382\t\t\t\n JUMP \t\t\t\n tag 1384\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 806\t\t\t\n JUMPDEST \t\t\t\n PUSH 1F\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1387\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1388\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 796\t\t\t\n JUMP \t\t\t\n tag 1388\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1389\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 797\t\t\t\n JUMP \t\t\t\n tag 1389\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1390\t\t\t\n JUMPI \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n tag 1390\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1391\t\t\t\n PUSH [tag] 1392\t\t\t\n DUP6 \t\t\t\n PUSH [tag] 797\t\t\t\n JUMP \t\t\t\n tag 1392\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 805\t\t\t\n JUMP \t\t\t\n tag 1391\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n tag 1387\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 807\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n SHR \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 808\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1395\t\t\t\n PUSH 0\t\t\t\n NOT \t\t\t\n DUP5 \t\t\t\n PUSH 8\t\t\t\n MUL \t\t\t\n PUSH [tag] 807\t\t\t\n JUMP \t\t\t\n tag 1395\t\t\t\n JUMPDEST \t\t\t\n NOT \t\t\t\n DUP1 \t\t\t\n DUP4 \t\t\t\n AND \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 809\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1397\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 808\t\t\t\n JUMP \t\t\t\n tag 1397\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n PUSH 2\t\t\t\n MUL \t\t\t\n DUP3 \t\t\t\n OR \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 553\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1399\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 737\t\t\t\n JUMP \t\t\t\n tag 1399\t\t\t\n JUMPDEST \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1400\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1401\t\t\t\n PUSH [tag] 287\t\t\t\n JUMP \t\t\t\n tag 1401\t\t\t\n JUMPDEST \t\t\t\n tag 1400\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1402\t\t\t\n DUP3 \t\t\t\n SLOAD \t\t\t\n PUSH [tag] 262\t\t\t\n JUMP \t\t\t\n tag 1402\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1403\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 806\t\t\t\n JUMP \t\t\t\n tag 1403\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n GT \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n EQ \t\t\t\n PUSH [tag] 1405\t\t\t\n JUMPI \t\t\t\n PUSH 0\t\t\t\n DUP5 \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1406\t\t\t\n JUMPI \t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n tag 1406\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1407\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 809\t\t\t\n JUMP \t\t\t\n tag 1407\t\t\t\n JUMPDEST \t\t\t\n DUP7 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n PUSH [tag] 1404\t\t\t\n JUMP \t\t\t\n tag 1405\t\t\t\n JUMPDEST \t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n DUP5 \t\t\t\n AND \t\t\t\n PUSH [tag] 1408\t\t\t\n DUP7 \t\t\t\n PUSH [tag] 796\t\t\t\n JUMP \t\t\t\n tag 1408\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n tag 1409\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1411\t\t\t\n JUMPI \t\t\t\n DUP5 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n DUP3 \t\t\t\n SSTORE \t\t\t\n PUSH 1\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1409\t\t\t\n JUMP \t\t\t\n tag 1411\t\t\t\n JUMPDEST \t\t\t\n DUP7 \t\t\t\n DUP4 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1412\t\t\t\n JUMPI \t\t\t\n DUP5 \t\t\t\n DUP10 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1413\t\t\t\n PUSH 1F\t\t\t\n DUP10 \t\t\t\n AND \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 808\t\t\t\n JUMP \t\t\t\n tag 1413\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n tag 1412\t\t\t\n JUMPDEST \t\t\t\n PUSH 1\t\t\t\n PUSH 2\t\t\t\n DUP9 \t\t\t\n MUL \t\t\t\n ADD \t\t\t\n DUP9 \t\t\t\n SSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n tag 1404\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 810\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 811\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 812\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 813\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1418\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 720\t\t\t\n JUMP \t\t\t\n tag 1418\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 814\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1420\t\t\t\n PUSH 0\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 779\t\t\t\n JUMP \t\t\t\n tag 1420\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1421\t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 813\t\t\t\n JUMP \t\t\t\n tag 1421\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MLOAD \t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n SUB \t\t\t\n PUSH 40\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1422\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 792\t\t\t\n JUMP \t\t\t\n tag 1422\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 815\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1424\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 814\t\t\t\n JUMP \t\t\t\n tag 1424\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 816\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 817\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1427\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 810\t\t\t\n JUMP \t\t\t\n tag 1427\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1428\t\t\t\n DUP2 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 811\t\t\t\n JUMP \t\t\t\n tag 1428\t\t\t\n JUMPDEST \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n DUP4 \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 1429\t\t\t\n DUP6 \t\t\t\n PUSH [tag] 812\t\t\t\n JUMP \t\t\t\n tag 1429\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 0\t\t\t\n tag 1430\t\t\t\n JUMPDEST \t\t\t\n DUP6 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1432\t\t\t\n JUMPI \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n DUP10 \t\t\t\n MSTORE \t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n PUSH [tag] 1433\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 815\t\t\t\n JUMP \t\t\t\n tag 1433\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n PUSH [tag] 1434\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 816\t\t\t\n JUMP \t\t\t\n tag 1434\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP11 \t\t\t\n ADD \t\t\t\n SWAP10 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 1\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1430\t\t\t\n JUMP \t\t\t\n tag 1432\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n SWAP8 \t\t\t\n POP \t\t\t\n DUP8 \t\t\t\n SWAP6 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 555\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n SUB \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n PUSH [tag] 1436\t\t\t\n DUP2 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 817\t\t\t\n JUMP \t\t\t\n tag 1436\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 818\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1438\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1439\t\t\t\n PUSH [tag] 760\t\t\t\n JUMP \t\t\t\n tag 1439\t\t\t\n JUMPDEST \t\t\t\n tag 1438\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1440\t\t\t\n PUSH 40\t\t\t\n PUSH [tag] 758\t\t\t\n JUMP \t\t\t\n tag 1440\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1441\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 692\t\t\t\n JUMP \t\t\t\n tag 1441\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1442\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 692\t\t\t\n JUMP \t\t\t\n tag 1442\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 569\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1444\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1445\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1445\t\t\t\n JUMPDEST \t\t\t\n tag 1444\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1446\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 818\t\t\t\n JUMP \t\t\t\n tag 1446\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 573\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1448\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 756\t\t\t\n JUMP \t\t\t\n tag 1448\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1449\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 1449\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1450\t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 1450\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 819\t\t\t\n JUMPDEST \t\t\t\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 12\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 820\t\t\t\n JUMPDEST \t\t\t\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 11\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 585\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1454\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1454\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1455\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1455\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 1456\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1457\t\t\t\n PUSH [tag] 819\t\t\t\n JUMP \t\t\t\n tag 1457\t\t\t\n JUMPDEST \t\t\t\n tag 1456\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n DIV \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 587\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1459\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1459\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1460\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1460\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n MUL \t\t\t\n PUSH [tag] 1461\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1461\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n DIV \t\t\t\n DUP5 \t\t\t\n EQ \t\t\t\n DUP4 \t\t\t\n ISZERO \t\t\t\n OR \t\t\t\n PUSH [tag] 1462\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1463\t\t\t\n PUSH [tag] 820\t\t\t\n JUMP \t\t\t\n tag 1463\t\t\t\n JUMPDEST \t\t\t\n tag 1462\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 821\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 591\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1467\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 821\t\t\t\n JUMP \t\t\t\n tag 1467\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 1468\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n PUSH [tag] 713\t\t\t\n JUMP \t\t\t\n tag 1468\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1469\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1470\t\t\t\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t\n DUP4 \t\t\t\n PUSH 20\t\t\t\n SUB \t\t\t\n PUSH 8\t\t\t\n MUL \t\t\t\n PUSH [tag] 798\t\t\t\n JUMP \t\t\t\n tag 1470\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n AND \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n tag 1469\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 823\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000\t\t\t\n DUP3 \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 596\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1473\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n PUSH [tag] 821\t\t\t\n JUMP \t\t\t\n tag 1473\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 1474\t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n PUSH [tag] 823\t\t\t\n JUMP \t\t\t\n tag 1474\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n PUSH 8\t\t\t\n DUP3 \t\t\t\n LT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1475\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1476\t\t\t\n PUSH FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000\t\t\t\n DUP4 \t\t\t\n PUSH 8\t\t\t\n SUB \t\t\t\n PUSH 8\t\t\t\n MUL \t\t\t\n PUSH [tag] 798\t\t\t\n JUMP \t\t\t\n tag 1476\t\t\t\n JUMPDEST \t\t\t\n DUP4 \t\t\t\n AND \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n tag 1475\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 824\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n PUSH C0\t\t\t\n SHL \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 825\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1479\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 824\t\t\t\n JUMP \t\t\t\n tag 1479\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 826\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1481\t\t\t\n PUSH [tag] 1482\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 724\t\t\t\n JUMP \t\t\t\n tag 1482\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 825\t\t\t\n JUMP \t\t\t\n tag 1481\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 827\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n PUSH E0\t\t\t\n SHL \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 828\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1485\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 827\t\t\t\n JUMP \t\t\t\n tag 1485\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 829\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1487\t\t\t\n PUSH [tag] 1488\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 729\t\t\t\n JUMP \t\t\t\n tag 1488\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 828\t\t\t\n JUMP \t\t\t\n tag 1487\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 830\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 831\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1491\t\t\t\n PUSH [tag] 1492\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1492\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 830\t\t\t\n JUMP \t\t\t\n tag 1491\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 608\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1494\t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n PUSH [tag] 826\t\t\t\n JUMP \t\t\t\n tag 1494\t\t\t\n JUMPDEST \t\t\t\n PUSH 8\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1495\t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 829\t\t\t\n JUMP \t\t\t\n tag 1495\t\t\t\n JUMPDEST \t\t\t\n PUSH 4\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1496\t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 831\t\t\t\n JUMP \t\t\t\n tag 1496\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1497\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 772\t\t\t\n JUMP \t\t\t\n tag 1497\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP6 \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 612\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1499\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1499\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1500\t\t\t\n DUP4 \t\t\t\n PUSH [tag] 690\t\t\t\n JUMP \t\t\t\n tag 1500\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP1 \t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1501\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1502\t\t\t\n PUSH [tag] 820\t\t\t\n JUMP \t\t\t\n tag 1502\t\t\t\n JUMPDEST \t\t\t\n tag 1501\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 832\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 833\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1505\t\t\t\n PUSH [tag] 1506\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 713\t\t\t\n JUMP \t\t\t\n tag 1506\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 832\t\t\t\n JUMP \t\t\t\n tag 1505\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 624\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1508\t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 833\t\t\t\n JUMP \t\t\t\n tag 1508\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1509\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 826\t\t\t\n JUMP \t\t\t\n tag 1509\t\t\t\n JUMPDEST \t\t\t\n PUSH 8\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 629\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1511\t\t\t\n DUP3 \t\t\t\n DUP8 \t\t\t\n PUSH [tag] 833\t\t\t\n JUMP \t\t\t\n tag 1511\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1512\t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 826\t\t\t\n JUMP \t\t\t\n tag 1512\t\t\t\n JUMPDEST \t\t\t\n PUSH 8\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1513\t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 833\t\t\t\n JUMP \t\t\t\n tag 1513\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n PUSH [tag] 1514\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 772\t\t\t\n JUMP \t\t\t\n tag 1514\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n DUP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP6 \t\t\t\n SWAP5 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 834\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1516\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 714\t\t\t\n JUMP \t\t\t\n tag 1516\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 835\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP2 \t\t\t\n MLOAD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1518\t\t\t\n DUP2 \t\t\t\n PUSH [tag] 781\t\t\t\n JUMP \t\t\t\n tag 1518\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 836\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 80\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1520\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1521\t\t\t\n PUSH [tag] 760\t\t\t\n JUMP \t\t\t\n tag 1521\t\t\t\n JUMPDEST \t\t\t\n tag 1520\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1522\t\t\t\n PUSH 60\t\t\t\n PUSH [tag] 758\t\t\t\n JUMP \t\t\t\n tag 1522\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1523\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 834\t\t\t\n JUMP \t\t\t\n tag 1523\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n PUSH [tag] 1524\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 835\t\t\t\n JUMP \t\t\t\n tag 1524\t\t\t\n JUMPDEST \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n PUSH 40\t\t\t\n PUSH [tag] 1525\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 795\t\t\t\n JUMP \t\t\t\n tag 1525\t\t\t\n JUMPDEST \t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 646\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 80\t\t\t\n DUP3 \t\t\t\n DUP5 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 1527\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 1528\t\t\t\n PUSH [tag] 684\t\t\t\n JUMP \t\t\t\n tag 1528\t\t\t\n JUMPDEST \t\t\t\n tag 1527\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 1529\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n ADD \t\t\t\n PUSH [tag] 836\t\t\t\n JUMP \t\t\t\n tag 1529\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 669\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 60\t\t\t\n DUP3 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 1531\t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP7 \t\t\t\n PUSH [tag] 711\t\t\t\n JUMP \t\t\t\n tag 1531\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1532\t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 711\t\t\t\n JUMP \t\t\t\n tag 1532\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 1533\t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n PUSH [tag] 726\t\t\t\n JUMP \t\t\t\n tag 1533\t\t\t\n JUMPDEST \t\t\t\n SWAP5 \t\t\t\n SWAP4 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n .data\n"
}