{ "id": "185b57025bf3be2f2ac673341ae2e90e", "_format": "hh-sol-build-info-1", "solcVersion": "0.8.0", "solcLongVersion": "0.8.0+commit.c7dfd78e", "input": { "language": "Solidity", "sources": { "contracts/Registry.sol": { "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"openzeppelin-solidity/contracts/metatx/BaseRelayRecipient.sol\";\nimport \"openzeppelin-solidity/contracts/metatx/MinimalForwarder.sol\";\n\ncontract Registry is BaseRelayRecipient { \n event Registered(address indexed who, string name);\n\n mapping(address => string) public names;\n mapping(string => address) public owners;\n\n constructor(MinimalForwarder forwarder) // Initialize trusted forwarder\n BaseRelayRecipient(address(forwarder)) {\n }\n\n function register(string memory name) external {\n require(owners[name] == address(0), \"Name taken\");\n address owner = _msgSender(); // Changed from msg.sender\n owners[name] = owner;\n names[owner] = name;\n emit Registered(owner, name);\n }\n}\n" }, "openzeppelin-solidity/contracts/metatx/BaseRelayRecipient.sol": { "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/*\n * @dev Context variant with ERC2771 support.\n */\nabstract contract BaseRelayRecipient is Context {\n address immutable _trustedForwarder;\n\n constructor(address trustedForwarder) {\n _trustedForwarder = trustedForwarder;\n }\n\n function isTrustedForwarder(address forwarder) public view virtual returns(bool) {\n return forwarder == _trustedForwarder;\n }\n\n function _msgSender() internal view virtual override returns (address sender) {\n if (isTrustedForwarder(msg.sender)) {\n // The assembly code is more direct than the Solidity version using `abi.decode`.\n assembly { sender := shr(96, calldataload(sub(calldatasize(), 20))) }\n } else {\n return super._msgSender();\n }\n }\n\n function _msgData() internal view virtual override returns (bytes calldata) {\n if (isTrustedForwarder(msg.sender)) {\n return msg.data[:msg.data.length-20];\n } else {\n return super._msgData();\n }\n }\n}\n" }, "openzeppelin-solidity/contracts/metatx/MinimalForwarder.sol": { "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../cryptography/ECDSA.sol\";\nimport \"../drafts/EIP712.sol\";\n\n/*\n * @dev Minimal forwarder for GSNv2\n */\ncontract MinimalForwarder is EIP712 {\n using ECDSA for bytes32;\n\n struct ForwardRequest {\n address from;\n address to;\n uint256 value;\n uint256 gas;\n uint256 nonce;\n bytes data;\n }\n\n bytes32 private constant TYPEHASH = keccak256(\"ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)\");\n\n mapping(address => uint256) private _nonces;\n\n constructor() EIP712(\"GSNv2 Forwarder\", \"0.0.1\") {}\n\n function getNonce(address from) public view returns (uint256) {\n return _nonces[from];\n }\n\n function verify(ForwardRequest calldata req, bytes calldata signature) public view returns (bool) {\n address signer = _hashTypedDataV4(keccak256(abi.encode(\n TYPEHASH,\n req.from,\n req.to,\n req.value,\n req.gas,\n req.nonce,\n keccak256(req.data)\n ))).recover(signature);\n return _nonces[req.from] == req.nonce && signer == req.from;\n }\n\n function execute(ForwardRequest calldata req, bytes calldata signature) public payable returns (bool, bytes memory) {\n require(verify(req, signature), \"MinimalForwarder: signature does not match request\");\n _nonces[req.from] = req.nonce + 1;\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = req.to.call{gas: req.gas, value: req.value}(abi.encodePacked(req.data, req.from));\n // Check gas: https://ronan.eth.link/blog/ethereum-gas-dangers/\n assert(gasleft() > req.gas / 63);\n\n return (success, returndata);\n }\n}\n" }, "openzeppelin-solidity/contracts/utils/Context.sol": { "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\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 GSN 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 this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n" }, "openzeppelin-solidity/contracts/cryptography/ECDSA.sol": { "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n // Check the signature length\n if (signature.length != 65) {\n revert(\"ECDSA: invalid signature length\");\n }\n\n // Divide the signature in r, s and v variables\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n // solhint-disable-next-line no-inline-assembly\n assembly {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n\n return recover(hash, v, r, s);\n }\n\n /**\n * @dev Overload of {ECDSA-recover-bytes32-bytes-} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, \"ECDSA: invalid signature 's' value\");\n require(v == 27 || v == 28, \"ECDSA: invalid signature 'v' value\");\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n require(signer != address(0), \"ECDSA: invalid signature\");\n\n return signer;\n }\n\n /**\n * @dev Returns an Ethereum Signed Message, created from a `hash`. This\n * replicates the behavior of the\n * https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign[`eth_sign`]\n * JSON-RPC method.\n *\n * See {recover}.\n */\n function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {\n // 32 is the length in bytes of hash,\n // enforced by the type signature above\n return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", hash));\n }\n\n /**\n * @dev TODO.\n *\n * See {recover}.\n */\n function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n }\n}\n" }, "openzeppelin-solidity/contracts/drafts/EIP712.sol": { "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n *\n * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n * they need in their contracts using a combination of `abi.encode` and `keccak256`.\n *\n * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n * ({_hashTypedDataV4}).\n *\n * The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n * the chain id to protect against replay attacks on an eventual fork of the chain.\n *\n * NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n *\n * _Available since v3.4._\n */\nabstract contract EIP712 {\n /* solhint-disable var-name-mixedcase */\n // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to\n // invalidate the cached domain separator if the chain id changes.\n bytes32 private immutable _CACHED_DOMAIN_SEPARATOR;\n uint256 private immutable _CACHED_CHAIN_ID;\n\n bytes32 private immutable _HASHED_NAME;\n bytes32 private immutable _HASHED_VERSION;\n bytes32 private immutable _TYPE_HASH;\n /* solhint-enable var-name-mixedcase */\n\n /**\n * @dev Initializes the domain separator and parameter caches.\n *\n * The meaning of `name` and `version` is specified in\n * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n *\n * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n * - `version`: the current major version of the signing domain.\n *\n * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n * contract upgrade].\n */\n constructor(string memory name, string memory version) {\n bytes32 hashedName = keccak256(bytes(name));\n bytes32 hashedVersion = keccak256(bytes(version));\n bytes32 typeHash = keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\");\n _HASHED_NAME = hashedName;\n _HASHED_VERSION = hashedVersion;\n _CACHED_CHAIN_ID = block.chainid;\n _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion);\n _TYPE_HASH = typeHash;\n }\n\n /**\n * @dev Returns the domain separator for the current chain.\n */\n function _domainSeparatorV4() internal view returns (bytes32) {\n if (block.chainid == _CACHED_CHAIN_ID) {\n return _CACHED_DOMAIN_SEPARATOR;\n } else {\n return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION);\n }\n }\n\n function _buildDomainSeparator(bytes32 typeHash, bytes32 name, bytes32 version) private view returns (bytes32) {\n return keccak256(\n abi.encode(\n typeHash,\n name,\n version,\n block.chainid,\n address(this)\n )\n );\n }\n\n /**\n * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n * function returns the hash of the fully encoded EIP712 message for this domain.\n *\n * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n *\n * ```solidity\n * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n * keccak256(\"Mail(address to,string contents)\"),\n * mailTo,\n * keccak256(bytes(mailContents))\n * )));\n * address signer = ECDSA.recover(digest, signature);\n * ```\n */\n function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {\n return keccak256(abi.encodePacked(\"\\x19\\x01\", _domainSeparatorV4(), structHash));\n }\n}\n" }, "contracts/SimpleRegistry.sol": { "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ncontract SimpleRegistry { \n event Registered(address indexed who, string name);\n\n mapping(address => string) public names;\n mapping(string => address) public owners;\n\n function register(string memory name) external {\n require(owners[name] == address(0), \"Name taken\");\n address owner = msg.sender;\n owners[name] = owner;\n names[owner] = name;\n emit Registered(owner, name);\n }\n}\n" } }, "settings": { "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers" ], "": [ "ast" ] } } } }, "output": { "contracts": { "contracts/Registry.sol": { "Registry": { "abi": [ { "inputs": [ { "internalType": "contract MinimalForwarder", "name": "forwarder", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "who", "type": "address" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" } ], "name": "Registered", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "names", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "owners", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" } ], "name": "register", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "evm": { "bytecode": { "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1075:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "94:104:7", "statements": [ { "nodeType": "YulAssignment", "src": "104:22:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "119:6:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "113:5:7" }, "nodeType": "YulFunctionCall", "src": "113:13:7" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "104:5:7" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "186:5:7" } ], "functionName": { "name": "validator_revert_t_contract$_MinimalForwarder_$652", "nodeType": "YulIdentifier", "src": "135:50:7" }, "nodeType": "YulFunctionCall", "src": "135:57:7" }, "nodeType": "YulExpressionStatement", "src": "135:57:7" } ] }, "name": "abi_decode_t_contract$_MinimalForwarder_$652_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "72:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "80:3:7", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "88:5:7", "type": "" } ], "src": "7:191:7" }, { "body": { "nodeType": "YulBlock", "src": "305:231:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "351:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "360:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "363:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "353:6:7" }, "nodeType": "YulFunctionCall", "src": "353:12:7" }, "nodeType": "YulExpressionStatement", "src": "353:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "326:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "335:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "322:3:7" }, "nodeType": "YulFunctionCall", "src": "322:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "347:2:7", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "318:3:7" }, "nodeType": "YulFunctionCall", "src": "318:32:7" }, "nodeType": "YulIf", "src": "315:2:7" }, { "nodeType": "YulBlock", "src": "377:152:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "392:15:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "406:1:7", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "396:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "421:98:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "491:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "502:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "487:3:7" }, "nodeType": "YulFunctionCall", "src": "487:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "511:7:7" } ], "functionName": { "name": "abi_decode_t_contract$_MinimalForwarder_$652_fromMemory", "nodeType": "YulIdentifier", "src": "431:55:7" }, "nodeType": "YulFunctionCall", "src": "431:88:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "421:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_contract$_MinimalForwarder_$652_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "275:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "286:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "298:6:7", "type": "" } ], "src": "204:332:7" }, { "body": { "nodeType": "YulBlock", "src": "587:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "597:35:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "626:5:7" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "608:17:7" }, "nodeType": "YulFunctionCall", "src": "608:24:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "597:7:7" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "569:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "579:7:7", "type": "" } ], "src": "542:96:7" }, { "body": { "nodeType": "YulBlock", "src": "713:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "723:35:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "752:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "734:17:7" }, "nodeType": "YulFunctionCall", "src": "734:24:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "723:7:7" } ] } ] }, "name": "cleanup_t_contract$_MinimalForwarder_$652", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "695:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "705:7:7", "type": "" } ], "src": "644:120:7" }, { "body": { "nodeType": "YulBlock", "src": "815:81:7", "statements": [ { "nodeType": "YulAssignment", "src": "825:65:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "840:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "847:42:7", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "836:3:7" }, "nodeType": "YulFunctionCall", "src": "836:54:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "825:7:7" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "797:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "807:7:7", "type": "" } ], "src": "770:126:7" }, { "body": { "nodeType": "YulBlock", "src": "969:103:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1050:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1059:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1062:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1052:6:7" }, "nodeType": "YulFunctionCall", "src": "1052:12:7" }, "nodeType": "YulExpressionStatement", "src": "1052:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "992:5:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1041:5:7" } ], "functionName": { "name": "cleanup_t_contract$_MinimalForwarder_$652", "nodeType": "YulIdentifier", "src": "999:41:7" }, "nodeType": "YulFunctionCall", "src": "999:48:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "989:2:7" }, "nodeType": "YulFunctionCall", "src": "989:59:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "982:6:7" }, "nodeType": "YulFunctionCall", "src": "982:67:7" }, "nodeType": "YulIf", "src": "979:2:7" } ] }, "name": "validator_revert_t_contract$_MinimalForwarder_$652", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "962:5:7", "type": "" } ], "src": "902:170:7" } ] }, "contents": "{\n\n function abi_decode_t_contract$_MinimalForwarder_$652_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_MinimalForwarder_$652(value)\n }\n\n function abi_decode_tuple_t_contract$_MinimalForwarder_$652_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_MinimalForwarder_$652_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_MinimalForwarder_$652(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function validator_revert_t_contract$_MinimalForwarder_$652(value) {\n if iszero(eq(value, cleanup_t_contract$_MinimalForwarder_$652(value))) { revert(0, 0) }\n }\n\n}\n", "id": 7, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, "object": "60a060405234801561001057600080fd5b50604051610a32380380610a3283398181016040528101906100329190610086565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505061010a565b600081519050610080816100f3565b92915050565b60006020828403121561009857600080fd5b60006100a684828501610071565b91505092915050565b60006100ba826100d3565b9050919050565b60006100cc826100af565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6100fc816100c1565b811461010757600080fd5b50565b60805160601c61090a610128600039600061014a015261090a6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632b1fd99514610051578063572b6c05146100815780635cf3d346146100b1578063f2c298be146100e1575b600080fd5b61006b6004803603810190610066919061057c565b6100fd565b604051610078919061069c565b60405180910390f35b61009b60048036038101906100969190610553565b610146565b6040516100a891906106b7565b60405180910390f35b6100cb60048036038101906100c69190610553565b61019e565b6040516100d891906106d2565b60405180910390f35b6100fb60048036038101906100f6919061057c565b61023e565b005b6001818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600060205280600052604060002060009150905080546101bd9061081c565b80601f01602080910402602001604051908101604052809291908181526020018280546101e99061081c565b80156102365780601f1061020b57610100808354040283529160200191610236565b820191906000526020600020905b81548152906001019060200180831161021957829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff166001826040516102669190610685565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e2906106f4565b60405180910390fd5b60006102f56103f9565b9050806001836040516103089190610685565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090805190602001906103a6929190610433565b508073ffffffffffffffffffffffffffffffffffffffff167fb3eccf73f39b1c07947c780b2b39df2a1bb058b4037b0a42d0881ca1a028a132836040516103ed91906106d2565b60405180910390a25050565b600061040433610146565b1561041857601436033560601c9050610427565b61042061042b565b9050610428565b5b90565b600033905090565b82805461043f9061081c565b90600052602060002090601f01602090048101928261046157600085556104a8565b82601f1061047a57805160ff19168380011785556104a8565b828001600101855582156104a8579182015b828111156104a757825182559160200191906001019061048c565b5b5090506104b591906104b9565b5090565b5b808211156104d25760008160009055506001016104ba565b5090565b60006104e96104e484610745565b610714565b90508281526020810184848401111561050157600080fd5b61050c8482856107da565b509392505050565b600081359050610523816108bd565b92915050565b600082601f83011261053a57600080fd5b813561054a8482602086016104d6565b91505092915050565b60006020828403121561056557600080fd5b600061057384828501610514565b91505092915050565b60006020828403121561058e57600080fd5b600082013567ffffffffffffffff8111156105a857600080fd5b6105b484828501610529565b91505092915050565b6105c68161079c565b82525050565b6105d5816107ae565b82525050565b60006105e682610775565b6105f08185610780565b93506106008185602086016107e9565b610609816108ac565b840191505092915050565b600061061f82610775565b6106298185610791565b93506106398185602086016107e9565b80840191505092915050565b6000610652600a83610780565b91507f4e616d652074616b656e000000000000000000000000000000000000000000006000830152602082019050919050565b60006106918284610614565b915081905092915050565b60006020820190506106b160008301846105bd565b92915050565b60006020820190506106cc60008301846105cc565b92915050565b600060208201905081810360008301526106ec81846105db565b905092915050565b6000602082019050818103600083015261070d81610645565b9050919050565b6000604051905081810181811067ffffffffffffffff8211171561073b5761073a61087d565b5b8060405250919050565b600067ffffffffffffffff8211156107605761075f61087d565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006107a7826107ba565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b838110156108075780820151818401526020810190506107ec565b83811115610816576000848401525b50505050565b6000600282049050600182168061083457607f821691505b602082108114156108485761084761084e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6108c68161079c565b81146108d157600080fd5b5056fea26469706673582212200b12d1fbfe331c30e06e9ad8182b890b15c4209217805d17dc1b1ee32ea8872b64736f6c63430008000033", "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA32 CODESIZE SUB DUP1 PUSH2 0xA32 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x86 JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE POP POP POP POP PUSH2 0x10A JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x80 DUP2 PUSH2 0xF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA6 DUP5 DUP3 DUP6 ADD PUSH2 0x71 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBA DUP3 PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC DUP3 PUSH2 0xAF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFC DUP2 PUSH2 0xC1 JUMP JUMPDEST DUP2 EQ PUSH2 0x107 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x90A PUSH2 0x128 PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x14A ADD MSTORE PUSH2 0x90A PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2B1FD995 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x572B6C05 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x5CF3D346 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xF2C298BE EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x57C JUMP JUMPDEST PUSH2 0xFD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x553 JUMP JUMPDEST PUSH2 0x146 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x553 JUMP JUMPDEST PUSH2 0x19E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x6D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x57C JUMP JUMPDEST PUSH2 0x23E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x1BD SWAP1 PUSH2 0x81C 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 0x1E9 SWAP1 PUSH2 0x81C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x236 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x236 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x219 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x266 SWAP2 SWAP1 PUSH2 0x685 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2EB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E2 SWAP1 PUSH2 0x6F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F5 PUSH2 0x3F9 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x685 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x3A6 SWAP3 SWAP2 SWAP1 PUSH2 0x433 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB3ECCF73F39B1C07947C780B2B39DF2A1BB058B4037B0A42D0881CA1A028A132 DUP4 PUSH1 0x40 MLOAD PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x6D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x404 CALLER PUSH2 0x146 JUMP JUMPDEST ISZERO PUSH2 0x418 JUMPI PUSH1 0x14 CALLDATASIZE SUB CALLDATALOAD PUSH1 0x60 SHR SWAP1 POP PUSH2 0x427 JUMP JUMPDEST PUSH2 0x420 PUSH2 0x42B JUMP JUMPDEST SWAP1 POP PUSH2 0x428 JUMP JUMPDEST JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0x81C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x461 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x4A8 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x47A JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4A8 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4A8 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4A7 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x48C JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4B5 SWAP2 SWAP1 PUSH2 0x4B9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x4D2 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x4BA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E9 PUSH2 0x4E4 DUP5 PUSH2 0x745 JUMP JUMPDEST PUSH2 0x714 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x501 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x50C DUP5 DUP3 DUP6 PUSH2 0x7DA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x523 DUP2 PUSH2 0x8BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x53A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x54A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x573 DUP5 DUP3 DUP6 ADD PUSH2 0x514 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5B4 DUP5 DUP3 DUP6 ADD PUSH2 0x529 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C6 DUP2 PUSH2 0x79C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5D5 DUP2 PUSH2 0x7AE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5E6 DUP3 PUSH2 0x775 JUMP JUMPDEST PUSH2 0x5F0 DUP2 DUP6 PUSH2 0x780 JUMP JUMPDEST SWAP4 POP PUSH2 0x600 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E9 JUMP JUMPDEST PUSH2 0x609 DUP2 PUSH2 0x8AC JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x61F DUP3 PUSH2 0x775 JUMP JUMPDEST PUSH2 0x629 DUP2 DUP6 PUSH2 0x791 JUMP JUMPDEST SWAP4 POP PUSH2 0x639 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x652 PUSH1 0xA DUP4 PUSH2 0x780 JUMP JUMPDEST SWAP2 POP PUSH32 0x4E616D652074616B656E00000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x691 DUP3 DUP5 PUSH2 0x614 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6B1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6CC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6EC DUP2 DUP5 PUSH2 0x5DB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70D DUP2 PUSH2 0x645 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x73B JUMPI PUSH2 0x73A PUSH2 0x87D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x760 JUMPI PUSH2 0x75F PUSH2 0x87D JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A7 DUP3 PUSH2 0x7BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x807 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x7EC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x816 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x834 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x848 JUMPI PUSH2 0x847 PUSH2 0x84E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8C6 DUP2 PUSH2 0x79C JUMP JUMPDEST DUP2 EQ PUSH2 0x8D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND SLT 0xD1 0xFB INVALID CALLER SHR ADDRESS 0xE0 PUSH15 0x9AD8182B890B15C4209217805D17DC SHL 0x1E 0xE3 0x2E 0xA8 DUP8 0x2B PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ", "sourceMap": "200:568:0:-:0;;;389:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;492:9;307:16:4;287:36;;;;;;;;;;;;239:91;389:120:0;200:568;;7:191:7;;119:6;113:13;104:22;;135:57;186:5;135:57;:::i;:::-;94:104;;;;:::o;204:332::-;;347:2;335:9;326:7;322:23;318:32;315:2;;;363:1;360;353:12;315:2;406:1;431:88;511:7;502:6;491:9;487:22;431:88;:::i;:::-;421:98;;377:152;305:231;;;;:::o;542:96::-;;608:24;626:5;608:24;:::i;:::-;597:35;;587:51;;;:::o;644:120::-;;734:24;752:5;734:24;:::i;:::-;723:35;;713:51;;;:::o;770:126::-;;847:42;840:5;836:54;825:65;;815:81;;;:::o;902:170::-;999:48;1041:5;999:48;:::i;:::-;992:5;989:59;979:2;;1062:1;1059;1052:12;979:2;969:103;:::o;200:568:0:-;;;;;;;;;;;;;" }, "deployedBytecode": { "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:7014:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "91:260:7", "statements": [ { "nodeType": "YulAssignment", "src": "101:74:7", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "167:6:7" } ], "functionName": { "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "125:41:7" }, "nodeType": "YulFunctionCall", "src": "125:49:7" } ], "functionName": { "name": "allocateMemory", "nodeType": "YulIdentifier", "src": "110:14:7" }, "nodeType": "YulFunctionCall", "src": "110:65:7" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "101:5:7" } ] }, { "expression": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "191:5:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "198:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "184:6:7" }, "nodeType": "YulFunctionCall", "src": "184:21:7" }, "nodeType": "YulExpressionStatement", "src": "184:21:7" }, { "nodeType": "YulVariableDeclaration", "src": "214:27:7", "value": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "229:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "236:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "225:3:7" }, "nodeType": "YulFunctionCall", "src": "225:16:7" }, "variables": [ { "name": "dst", "nodeType": "YulTypedName", "src": "218:3:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "279:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "288:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "291:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "281:6:7" }, "nodeType": "YulFunctionCall", "src": "281:12:7" }, "nodeType": "YulExpressionStatement", "src": "281:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "260:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "265:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "256:3:7" }, "nodeType": "YulFunctionCall", "src": "256:16:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "274:3:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "253:2:7" }, "nodeType": "YulFunctionCall", "src": "253:25:7" }, "nodeType": "YulIf", "src": "250:2:7" }, { "expression": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "328:3:7" }, { "name": "dst", "nodeType": "YulIdentifier", "src": "333:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "338:6:7" } ], "functionName": { "name": "copy_calldata_to_memory", "nodeType": "YulIdentifier", "src": "304:23:7" }, "nodeType": "YulFunctionCall", "src": "304:41:7" }, "nodeType": "YulExpressionStatement", "src": "304:41:7" } ] }, "name": "abi_decode_available_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "64:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "69:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "77:3:7", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "85:5:7", "type": "" } ], "src": "7:344:7" }, { "body": { "nodeType": "YulBlock", "src": "409:87:7", "statements": [ { "nodeType": "YulAssignment", "src": "419:29:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "441:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "428:12:7" }, "nodeType": "YulFunctionCall", "src": "428:20:7" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "419:5:7" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "484:5:7" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "457:26:7" }, "nodeType": "YulFunctionCall", "src": "457:33:7" }, "nodeType": "YulExpressionStatement", "src": "457:33:7" } ] }, "name": "abi_decode_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "387:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "395:3:7", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "403:5:7", "type": "" } ], "src": "357:139:7" }, { "body": { "nodeType": "YulBlock", "src": "578:211:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "627:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "636:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "639:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "629:6:7" }, "nodeType": "YulFunctionCall", "src": "629:12:7" }, "nodeType": "YulExpressionStatement", "src": "629:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "606:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "614:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "602:3:7" }, "nodeType": "YulFunctionCall", "src": "602:17:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "621:3:7" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "598:3:7" }, "nodeType": "YulFunctionCall", "src": "598:27:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "591:6:7" }, "nodeType": "YulFunctionCall", "src": "591:35:7" }, "nodeType": "YulIf", "src": "588:2:7" }, { "nodeType": "YulVariableDeclaration", "src": "652:34:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "679:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "666:12:7" }, "nodeType": "YulFunctionCall", "src": "666:20:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "656:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "695:88:7", "value": { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "756:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "764:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "752:3:7" }, "nodeType": "YulFunctionCall", "src": "752:17:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "771:6:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "779:3:7" } ], "functionName": { "name": "abi_decode_available_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "704:47:7" }, "nodeType": "YulFunctionCall", "src": "704:79:7" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "695:5:7" } ] } ] }, "name": "abi_decode_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "556:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "564:3:7", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "572:5:7", "type": "" } ], "src": "516:273:7" }, { "body": { "nodeType": "YulBlock", "src": "861:196:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "907:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "916:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "919:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "909:6:7" }, "nodeType": "YulFunctionCall", "src": "909:12:7" }, "nodeType": "YulExpressionStatement", "src": "909:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "882:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "891:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "878:3:7" }, "nodeType": "YulFunctionCall", "src": "878:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "903:2:7", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "874:3:7" }, "nodeType": "YulFunctionCall", "src": "874:32:7" }, "nodeType": "YulIf", "src": "871:2:7" }, { "nodeType": "YulBlock", "src": "933:117:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "948:15:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "962:1:7", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "952:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "977:63:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1012:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1023:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1008:3:7" }, "nodeType": "YulFunctionCall", "src": "1008:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1032:7:7" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "987:20:7" }, "nodeType": "YulFunctionCall", "src": "987:53:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "977:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "831:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "842:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "854:6:7", "type": "" } ], "src": "795:262:7" }, { "body": { "nodeType": "YulBlock", "src": "1139:299:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1185:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1194:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1197:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1187:6:7" }, "nodeType": "YulFunctionCall", "src": "1187:12:7" }, "nodeType": "YulExpressionStatement", "src": "1187:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1160:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "1169:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "1156:3:7" }, "nodeType": "YulFunctionCall", "src": "1156:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1181:2:7", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "1152:3:7" }, "nodeType": "YulFunctionCall", "src": "1152:32:7" }, "nodeType": "YulIf", "src": "1149:2:7" }, { "nodeType": "YulBlock", "src": "1211:220:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1226:45:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1257:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1268:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1253:3:7" }, "nodeType": "YulFunctionCall", "src": "1253:17:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "1240:12:7" }, "nodeType": "YulFunctionCall", "src": "1240:31:7" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1230:6:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "1318:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1327:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1330:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1320:6:7" }, "nodeType": "YulFunctionCall", "src": "1320:12:7" }, "nodeType": "YulExpressionStatement", "src": "1320:12:7" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1290:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1298:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "1287:2:7" }, "nodeType": "YulFunctionCall", "src": "1287:30:7" }, "nodeType": "YulIf", "src": "1284:2:7" }, { "nodeType": "YulAssignment", "src": "1348:73:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1393:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1404:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1389:3:7" }, "nodeType": "YulFunctionCall", "src": "1389:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1413:7:7" } ], "functionName": { "name": "abi_decode_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "1358:30:7" }, "nodeType": "YulFunctionCall", "src": "1358:63:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1348:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1109:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "1120:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "1132:6:7", "type": "" } ], "src": "1063:375:7" }, { "body": { "nodeType": "YulBlock", "src": "1509:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1526:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1549:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1531:17:7" }, "nodeType": "YulFunctionCall", "src": "1531:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1519:6:7" }, "nodeType": "YulFunctionCall", "src": "1519:37:7" }, "nodeType": "YulExpressionStatement", "src": "1519:37:7" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1497:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1504:3:7", "type": "" } ], "src": "1444:118:7" }, { "body": { "nodeType": "YulBlock", "src": "1627:50:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1644:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1664:5:7" } ], "functionName": { "name": "cleanup_t_bool", "nodeType": "YulIdentifier", "src": "1649:14:7" }, "nodeType": "YulFunctionCall", "src": "1649:21:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1637:6:7" }, "nodeType": "YulFunctionCall", "src": "1637:34:7" }, "nodeType": "YulExpressionStatement", "src": "1637:34:7" } ] }, "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1615:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1622:3:7", "type": "" } ], "src": "1568:109:7" }, { "body": { "nodeType": "YulBlock", "src": "1775:272:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1785:53:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1832:5:7" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "1799:32:7" }, "nodeType": "YulFunctionCall", "src": "1799:39:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "1789:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1847:78:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1913:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1918:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "1854:58:7" }, "nodeType": "YulFunctionCall", "src": "1854:71:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1847:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1960:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1967:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1956:3:7" }, "nodeType": "YulFunctionCall", "src": "1956:16:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "1974:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1979:6:7" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "1934:21:7" }, "nodeType": "YulFunctionCall", "src": "1934:52:7" }, "nodeType": "YulExpressionStatement", "src": "1934:52:7" }, { "nodeType": "YulAssignment", "src": "1995:46:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2006:3:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "2033:6:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "2011:21:7" }, "nodeType": "YulFunctionCall", "src": "2011:29:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2002:3:7" }, "nodeType": "YulFunctionCall", "src": "2002:39:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "1995:3:7" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1756:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1763:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "1771:3:7", "type": "" } ], "src": "1683:364:7" }, { "body": { "nodeType": "YulBlock", "src": "2163:267:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2173:53:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2220:5:7" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "2187:32:7" }, "nodeType": "YulFunctionCall", "src": "2187:39:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2177:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2235:96:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2319:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2324:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "2242:76:7" }, "nodeType": "YulFunctionCall", "src": "2242:89:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2235:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2366:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2373:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2362:3:7" }, "nodeType": "YulFunctionCall", "src": "2362:16:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "2380:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2385:6:7" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "2340:21:7" }, "nodeType": "YulFunctionCall", "src": "2340:52:7" }, "nodeType": "YulExpressionStatement", "src": "2340:52:7" }, { "nodeType": "YulAssignment", "src": "2401:23:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2412:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2417:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2408:3:7" }, "nodeType": "YulFunctionCall", "src": "2408:16:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2401:3:7" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2144:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2151:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2159:3:7", "type": "" } ], "src": "2053:377:7" }, { "body": { "nodeType": "YulBlock", "src": "2582:162:7", "statements": [ { "nodeType": "YulAssignment", "src": "2592:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2658:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2663:2:7", "type": "", "value": "10" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "2599:58:7" }, "nodeType": "YulFunctionCall", "src": "2599:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2592:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2687:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2692:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2683:3:7" }, "nodeType": "YulFunctionCall", "src": "2683:11:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "2696:12:7", "type": "", "value": "Name taken" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2676:6:7" }, "nodeType": "YulFunctionCall", "src": "2676:33:7" }, "nodeType": "YulExpressionStatement", "src": "2676:33:7" }, { "nodeType": "YulAssignment", "src": "2719:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2730:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2735:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2726:3:7" }, "nodeType": "YulFunctionCall", "src": "2726:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2719:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "2570:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2578:3:7", "type": "" } ], "src": "2436:308:7" }, { "body": { "nodeType": "YulBlock", "src": "2886:139:7", "statements": [ { "nodeType": "YulAssignment", "src": "2897:102:7", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "2986:6:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "2995:3:7" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "2904:81:7" }, "nodeType": "YulFunctionCall", "src": "2904:95:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2897:3:7" } ] }, { "nodeType": "YulAssignment", "src": "3009:10:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "3016:3:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "3009:3:7" } ] } ] }, "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "2865:3:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "2871:6:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2882:3:7", "type": "" } ], "src": "2750:275:7" }, { "body": { "nodeType": "YulBlock", "src": "3129:124:7", "statements": [ { "nodeType": "YulAssignment", "src": "3139:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3151:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3162:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3147:3:7" }, "nodeType": "YulFunctionCall", "src": "3147:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3139:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3219:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3232:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3243:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3228:3:7" }, "nodeType": "YulFunctionCall", "src": "3228:17:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "3175:43:7" }, "nodeType": "YulFunctionCall", "src": "3175:71:7" }, "nodeType": "YulExpressionStatement", "src": "3175:71:7" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3101:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3113:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3124:4:7", "type": "" } ], "src": "3031:222:7" }, { "body": { "nodeType": "YulBlock", "src": "3351:118:7", "statements": [ { "nodeType": "YulAssignment", "src": "3361:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3373:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3384:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3369:3:7" }, "nodeType": "YulFunctionCall", "src": "3369:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3361:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3435:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3448:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3459:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3444:3:7" }, "nodeType": "YulFunctionCall", "src": "3444:17:7" } ], "functionName": { "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulIdentifier", "src": "3397:37:7" }, "nodeType": "YulFunctionCall", "src": "3397:65:7" }, "nodeType": "YulExpressionStatement", "src": "3397:65:7" } ] }, "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3323:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3335:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3346:4:7", "type": "" } ], "src": "3259:210:7" }, { "body": { "nodeType": "YulBlock", "src": "3593:195:7", "statements": [ { "nodeType": "YulAssignment", "src": "3603:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3615:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3626:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3611:3:7" }, "nodeType": "YulFunctionCall", "src": "3611:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3603:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3650:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3661:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3646:3:7" }, "nodeType": "YulFunctionCall", "src": "3646:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3669:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "3675:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "3665:3:7" }, "nodeType": "YulFunctionCall", "src": "3665:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3639:6:7" }, "nodeType": "YulFunctionCall", "src": "3639:47:7" }, "nodeType": "YulExpressionStatement", "src": "3639:47:7" }, { "nodeType": "YulAssignment", "src": "3695:86:7", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3767:6:7" }, { "name": "tail", "nodeType": "YulIdentifier", "src": "3776:4:7" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3703:63:7" }, "nodeType": "YulFunctionCall", "src": "3703:78:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3695:4:7" } ] } ] }, "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3565:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3577:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3588:4:7", "type": "" } ], "src": "3475:313:7" }, { "body": { "nodeType": "YulBlock", "src": "3965:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "3975:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3987:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3998:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3983:3:7" }, "nodeType": "YulFunctionCall", "src": "3983:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3975:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "4022:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4033:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4018:3:7" }, "nodeType": "YulFunctionCall", "src": "4018:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4041:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "4047:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "4037:3:7" }, "nodeType": "YulFunctionCall", "src": "4037:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4011:6:7" }, "nodeType": "YulFunctionCall", "src": "4011:47:7" }, "nodeType": "YulExpressionStatement", "src": "4011:47:7" }, { "nodeType": "YulAssignment", "src": "4067:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4201:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "4075:124:7" }, "nodeType": "YulFunctionCall", "src": "4075:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4067:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3945:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3960:4:7", "type": "" } ], "src": "3794:419:7" }, { "body": { "nodeType": "YulBlock", "src": "4259:243:7", "statements": [ { "nodeType": "YulAssignment", "src": "4269:19:7", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4285:2:7", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "4279:5:7" }, "nodeType": "YulFunctionCall", "src": "4279:9:7" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4269:6:7" } ] }, { "nodeType": "YulVariableDeclaration", "src": "4297:35:7", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4319:6:7" }, { "name": "size", "nodeType": "YulIdentifier", "src": "4327:4:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4315:3:7" }, "nodeType": "YulFunctionCall", "src": "4315:17:7" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", "src": "4301:10:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "4443:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "4445:16:7" }, "nodeType": "YulFunctionCall", "src": "4445:18:7" }, "nodeType": "YulExpressionStatement", "src": "4445:18:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4386:10:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4398:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "4383:2:7" }, "nodeType": "YulFunctionCall", "src": "4383:34:7" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4422:10:7" }, { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4434:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "4419:2:7" }, "nodeType": "YulFunctionCall", "src": "4419:22:7" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", "src": "4380:2:7" }, "nodeType": "YulFunctionCall", "src": "4380:62:7" }, "nodeType": "YulIf", "src": "4377:2:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4481:2:7", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4485:10:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4474:6:7" }, "nodeType": "YulFunctionCall", "src": "4474:22:7" }, "nodeType": "YulExpressionStatement", "src": "4474:22:7" } ] }, "name": "allocateMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "size", "nodeType": "YulTypedName", "src": "4243:4:7", "type": "" } ], "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "4252:6:7", "type": "" } ], "src": "4219:283:7" }, { "body": { "nodeType": "YulBlock", "src": "4575:265:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "4680:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "4682:16:7" }, "nodeType": "YulFunctionCall", "src": "4682:18:7" }, "nodeType": "YulExpressionStatement", "src": "4682:18:7" } ] }, "condition": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4652:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4660:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "4649:2:7" }, "nodeType": "YulFunctionCall", "src": "4649:30:7" }, "nodeType": "YulIf", "src": "4646:2:7" }, { "nodeType": "YulAssignment", "src": "4732:41:7", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4748:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4756:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4744:3:7" }, "nodeType": "YulFunctionCall", "src": "4744:17:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4767:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "4763:3:7" }, "nodeType": "YulFunctionCall", "src": "4763:9:7" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "4740:3:7" }, "nodeType": "YulFunctionCall", "src": "4740:33:7" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4732:4:7" } ] }, { "nodeType": "YulAssignment", "src": "4810:23:7", "value": { "arguments": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4822:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4828:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4818:3:7" }, "nodeType": "YulFunctionCall", "src": "4818:15:7" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4810:4:7" } ] } ] }, "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "length", "nodeType": "YulTypedName", "src": "4559:6:7", "type": "" } ], "returnVariables": [ { "name": "size", "nodeType": "YulTypedName", "src": "4570:4:7", "type": "" } ], "src": "4508:332:7" }, { "body": { "nodeType": "YulBlock", "src": "4905:40:7", "statements": [ { "nodeType": "YulAssignment", "src": "4916:22:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "4932:5:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "4926:5:7" }, "nodeType": "YulFunctionCall", "src": "4926:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4916:6:7" } ] } ] }, "name": "array_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "4888:5:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "4898:6:7", "type": "" } ], "src": "4846:99:7" }, { "body": { "nodeType": "YulBlock", "src": "5047:73:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5064:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5069:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5057:6:7" }, "nodeType": "YulFunctionCall", "src": "5057:19:7" }, "nodeType": "YulExpressionStatement", "src": "5057:19:7" }, { "nodeType": "YulAssignment", "src": "5085:29:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5104:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5109:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5100:3:7" }, "nodeType": "YulFunctionCall", "src": "5100:14:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "5085:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "5019:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "5024:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "5035:11:7", "type": "" } ], "src": "4951:169:7" }, { "body": { "nodeType": "YulBlock", "src": "5240:34:7", "statements": [ { "nodeType": "YulAssignment", "src": "5250:18:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "5265:3:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "5250:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "5212:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "5217:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "5228:11:7", "type": "" } ], "src": "5126:148:7" }, { "body": { "nodeType": "YulBlock", "src": "5325:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "5335:35:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5364:5:7" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "5346:17:7" }, "nodeType": "YulFunctionCall", "src": "5346:24:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "5335:7:7" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "5307:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "5317:7:7", "type": "" } ], "src": "5280:96:7" }, { "body": { "nodeType": "YulBlock", "src": "5424:48:7", "statements": [ { "nodeType": "YulAssignment", "src": "5434:32:7", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5459:5:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "5452:6:7" }, "nodeType": "YulFunctionCall", "src": "5452:13:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "5445:6:7" }, "nodeType": "YulFunctionCall", "src": "5445:21:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "5434:7:7" } ] } ] }, "name": "cleanup_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "5406:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "5416:7:7", "type": "" } ], "src": "5382:90:7" }, { "body": { "nodeType": "YulBlock", "src": "5523:81:7", "statements": [ { "nodeType": "YulAssignment", "src": "5533:65:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5548:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5555:42:7", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "5544:3:7" }, "nodeType": "YulFunctionCall", "src": "5544:54:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "5533:7:7" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "5505:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "5515:7:7", "type": "" } ], "src": "5478:126:7" }, { "body": { "nodeType": "YulBlock", "src": "5661:103:7", "statements": [ { "expression": { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "5684:3:7" }, { "name": "src", "nodeType": "YulIdentifier", "src": "5689:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5694:6:7" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", "src": "5671:12:7" }, "nodeType": "YulFunctionCall", "src": "5671:30:7" }, "nodeType": "YulExpressionStatement", "src": "5671:30:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "5742:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5747:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5738:3:7" }, "nodeType": "YulFunctionCall", "src": "5738:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5756:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5731:6:7" }, "nodeType": "YulFunctionCall", "src": "5731:27:7" }, "nodeType": "YulExpressionStatement", "src": "5731:27:7" } ] }, "name": "copy_calldata_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "5643:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "5648:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "5653:6:7", "type": "" } ], "src": "5610:154:7" }, { "body": { "nodeType": "YulBlock", "src": "5819:258:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "5829:10:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "5838:1:7", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "5833:1:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "5898:63:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "5923:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "5928:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5919:3:7" }, "nodeType": "YulFunctionCall", "src": "5919:11:7" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "5942:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "5947:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5938:3:7" }, "nodeType": "YulFunctionCall", "src": "5938:11:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "5932:5:7" }, "nodeType": "YulFunctionCall", "src": "5932:18:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5912:6:7" }, "nodeType": "YulFunctionCall", "src": "5912:39:7" }, "nodeType": "YulExpressionStatement", "src": "5912:39:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "5859:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5862:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "5856:2:7" }, "nodeType": "YulFunctionCall", "src": "5856:13:7" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "5870:19:7", "statements": [ { "nodeType": "YulAssignment", "src": "5872:15:7", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "5881:1:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5884:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5877:3:7" }, "nodeType": "YulFunctionCall", "src": "5877:10:7" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "5872:1:7" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "5852:3:7", "statements": [] }, "src": "5848:113:7" }, { "body": { "nodeType": "YulBlock", "src": "5995:76:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "6045:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "6050:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "6041:3:7" }, "nodeType": "YulFunctionCall", "src": "6041:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6059:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6034:6:7" }, "nodeType": "YulFunctionCall", "src": "6034:27:7" }, "nodeType": "YulExpressionStatement", "src": "6034:27:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "5976:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5979:6:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "5973:2:7" }, "nodeType": "YulFunctionCall", "src": "5973:13:7" }, "nodeType": "YulIf", "src": "5970:2:7" } ] }, "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "5801:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "5806:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "5811:6:7", "type": "" } ], "src": "5770:307:7" }, { "body": { "nodeType": "YulBlock", "src": "6134:269:7", "statements": [ { "nodeType": "YulAssignment", "src": "6144:22:7", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", "src": "6158:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6164:1:7", "type": "", "value": "2" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", "src": "6154:3:7" }, "nodeType": "YulFunctionCall", "src": "6154:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "6144:6:7" } ] }, { "nodeType": "YulVariableDeclaration", "src": "6175:38:7", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", "src": "6205:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6211:1:7", "type": "", "value": "1" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "6201:3:7" }, "nodeType": "YulFunctionCall", "src": "6201:12:7" }, "variables": [ { "name": "outOfPlaceEncoding", "nodeType": "YulTypedName", "src": "6179:18:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "6252:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "6266:27:7", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "6280:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6288:4:7", "type": "", "value": "0x7f" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "6276:3:7" }, "nodeType": "YulFunctionCall", "src": "6276:17:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "6266:6:7" } ] } ] }, "condition": { "arguments": [ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "6232:18:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "6225:6:7" }, "nodeType": "YulFunctionCall", "src": "6225:26:7" }, "nodeType": "YulIf", "src": "6222:2:7" }, { "body": { "nodeType": "YulBlock", "src": "6355:42:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x22", "nodeType": "YulIdentifier", "src": "6369:16:7" }, "nodeType": "YulFunctionCall", "src": "6369:18:7" }, "nodeType": "YulExpressionStatement", "src": "6369:18:7" } ] }, "condition": { "arguments": [ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "6319:18:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "6342:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6350:2:7", "type": "", "value": "32" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "6339:2:7" }, "nodeType": "YulFunctionCall", "src": "6339:14:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "6316:2:7" }, "nodeType": "YulFunctionCall", "src": "6316:38:7" }, "nodeType": "YulIf", "src": "6313:2:7" } ] }, "name": "extract_byte_array_length", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "data", "nodeType": "YulTypedName", "src": "6118:4:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "6127:6:7", "type": "" } ], "src": "6083:320:7" }, { "body": { "nodeType": "YulBlock", "src": "6437:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6454:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6457:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6447:6:7" }, "nodeType": "YulFunctionCall", "src": "6447:88:7" }, "nodeType": "YulExpressionStatement", "src": "6447:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6551:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6554:4:7", "type": "", "value": "0x22" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6544:6:7" }, "nodeType": "YulFunctionCall", "src": "6544:15:7" }, "nodeType": "YulExpressionStatement", "src": "6544:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6575:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6578:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "6568:6:7" }, "nodeType": "YulFunctionCall", "src": "6568:15:7" }, "nodeType": "YulExpressionStatement", "src": "6568:15:7" } ] }, "name": "panic_error_0x22", "nodeType": "YulFunctionDefinition", "src": "6409:180:7" }, { "body": { "nodeType": "YulBlock", "src": "6623:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6640:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6643:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6633:6:7" }, "nodeType": "YulFunctionCall", "src": "6633:88:7" }, "nodeType": "YulExpressionStatement", "src": "6633:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6737:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6740:4:7", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6730:6:7" }, "nodeType": "YulFunctionCall", "src": "6730:15:7" }, "nodeType": "YulExpressionStatement", "src": "6730:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6761:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6764:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "6754:6:7" }, "nodeType": "YulFunctionCall", "src": "6754:15:7" }, "nodeType": "YulExpressionStatement", "src": "6754:15:7" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "6595:180:7" }, { "body": { "nodeType": "YulBlock", "src": "6829:54:7", "statements": [ { "nodeType": "YulAssignment", "src": "6839:38:7", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "6857:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6864:2:7", "type": "", "value": "31" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "6853:3:7" }, "nodeType": "YulFunctionCall", "src": "6853:14:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6873:2:7", "type": "", "value": "31" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "6869:3:7" }, "nodeType": "YulFunctionCall", "src": "6869:7:7" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "6849:3:7" }, "nodeType": "YulFunctionCall", "src": "6849:28:7" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "6839:6:7" } ] } ] }, "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "6812:5:7", "type": "" } ], "returnVariables": [ { "name": "result", "nodeType": "YulTypedName", "src": "6822:6:7", "type": "" } ], "src": "6781:102:7" }, { "body": { "nodeType": "YulBlock", "src": "6932:79:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "6989:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6998:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7001:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "6991:6:7" }, "nodeType": "YulFunctionCall", "src": "6991:12:7" }, "nodeType": "YulExpressionStatement", "src": "6991:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "6955:5:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "6980:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "6962:17:7" }, "nodeType": "YulFunctionCall", "src": "6962:24:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "6952:2:7" }, "nodeType": "YulFunctionCall", "src": "6952:35:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "6945:6:7" }, "nodeType": "YulFunctionCall", "src": "6945:43:7" }, "nodeType": "YulIf", "src": "6942:2:7" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "6925:5:7", "type": "" } ], "src": "6889:122:7" } ] }, "contents": "{\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocateMemory(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(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_string_memory_ptr(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_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\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(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 10)\n\n mstore(add(pos, 0), \"Name taken\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\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 abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_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 abi_encode_tuple_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 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 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 // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\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 array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\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 panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n", "id": 7, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": { "413": [ { "length": 32, "start": 330 } ] }, "linkReferences": {}, "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80632b1fd99514610051578063572b6c05146100815780635cf3d346146100b1578063f2c298be146100e1575b600080fd5b61006b6004803603810190610066919061057c565b6100fd565b604051610078919061069c565b60405180910390f35b61009b60048036038101906100969190610553565b610146565b6040516100a891906106b7565b60405180910390f35b6100cb60048036038101906100c69190610553565b61019e565b6040516100d891906106d2565b60405180910390f35b6100fb60048036038101906100f6919061057c565b61023e565b005b6001818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600060205280600052604060002060009150905080546101bd9061081c565b80601f01602080910402602001604051908101604052809291908181526020018280546101e99061081c565b80156102365780601f1061020b57610100808354040283529160200191610236565b820191906000526020600020905b81548152906001019060200180831161021957829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff166001826040516102669190610685565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e2906106f4565b60405180910390fd5b60006102f56103f9565b9050806001836040516103089190610685565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090805190602001906103a6929190610433565b508073ffffffffffffffffffffffffffffffffffffffff167fb3eccf73f39b1c07947c780b2b39df2a1bb058b4037b0a42d0881ca1a028a132836040516103ed91906106d2565b60405180910390a25050565b600061040433610146565b1561041857601436033560601c9050610427565b61042061042b565b9050610428565b5b90565b600033905090565b82805461043f9061081c565b90600052602060002090601f01602090048101928261046157600085556104a8565b82601f1061047a57805160ff19168380011785556104a8565b828001600101855582156104a8579182015b828111156104a757825182559160200191906001019061048c565b5b5090506104b591906104b9565b5090565b5b808211156104d25760008160009055506001016104ba565b5090565b60006104e96104e484610745565b610714565b90508281526020810184848401111561050157600080fd5b61050c8482856107da565b509392505050565b600081359050610523816108bd565b92915050565b600082601f83011261053a57600080fd5b813561054a8482602086016104d6565b91505092915050565b60006020828403121561056557600080fd5b600061057384828501610514565b91505092915050565b60006020828403121561058e57600080fd5b600082013567ffffffffffffffff8111156105a857600080fd5b6105b484828501610529565b91505092915050565b6105c68161079c565b82525050565b6105d5816107ae565b82525050565b60006105e682610775565b6105f08185610780565b93506106008185602086016107e9565b610609816108ac565b840191505092915050565b600061061f82610775565b6106298185610791565b93506106398185602086016107e9565b80840191505092915050565b6000610652600a83610780565b91507f4e616d652074616b656e000000000000000000000000000000000000000000006000830152602082019050919050565b60006106918284610614565b915081905092915050565b60006020820190506106b160008301846105bd565b92915050565b60006020820190506106cc60008301846105cc565b92915050565b600060208201905081810360008301526106ec81846105db565b905092915050565b6000602082019050818103600083015261070d81610645565b9050919050565b6000604051905081810181811067ffffffffffffffff8211171561073b5761073a61087d565b5b8060405250919050565b600067ffffffffffffffff8211156107605761075f61087d565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006107a7826107ba565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b838110156108075780820151818401526020810190506107ec565b83811115610816576000848401525b50505050565b6000600282049050600182168061083457607f821691505b602082108114156108485761084761084e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6108c68161079c565b81146108d157600080fd5b5056fea26469706673582212200b12d1fbfe331c30e06e9ad8182b890b15c4209217805d17dc1b1ee32ea8872b64736f6c63430008000033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2B1FD995 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x572B6C05 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x5CF3D346 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xF2C298BE EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x57C JUMP JUMPDEST PUSH2 0xFD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x553 JUMP JUMPDEST PUSH2 0x146 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x553 JUMP JUMPDEST PUSH2 0x19E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x6D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x57C JUMP JUMPDEST PUSH2 0x23E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x1BD SWAP1 PUSH2 0x81C 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 0x1E9 SWAP1 PUSH2 0x81C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x236 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x236 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x219 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x266 SWAP2 SWAP1 PUSH2 0x685 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2EB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E2 SWAP1 PUSH2 0x6F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F5 PUSH2 0x3F9 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x685 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x3A6 SWAP3 SWAP2 SWAP1 PUSH2 0x433 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB3ECCF73F39B1C07947C780B2B39DF2A1BB058B4037B0A42D0881CA1A028A132 DUP4 PUSH1 0x40 MLOAD PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x6D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x404 CALLER PUSH2 0x146 JUMP JUMPDEST ISZERO PUSH2 0x418 JUMPI PUSH1 0x14 CALLDATASIZE SUB CALLDATALOAD PUSH1 0x60 SHR SWAP1 POP PUSH2 0x427 JUMP JUMPDEST PUSH2 0x420 PUSH2 0x42B JUMP JUMPDEST SWAP1 POP PUSH2 0x428 JUMP JUMPDEST JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0x81C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x461 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x4A8 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x47A JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4A8 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4A8 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4A7 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x48C JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4B5 SWAP2 SWAP1 PUSH2 0x4B9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x4D2 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x4BA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E9 PUSH2 0x4E4 DUP5 PUSH2 0x745 JUMP JUMPDEST PUSH2 0x714 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x501 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x50C DUP5 DUP3 DUP6 PUSH2 0x7DA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x523 DUP2 PUSH2 0x8BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x53A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x54A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x573 DUP5 DUP3 DUP6 ADD PUSH2 0x514 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5B4 DUP5 DUP3 DUP6 ADD PUSH2 0x529 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C6 DUP2 PUSH2 0x79C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5D5 DUP2 PUSH2 0x7AE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5E6 DUP3 PUSH2 0x775 JUMP JUMPDEST PUSH2 0x5F0 DUP2 DUP6 PUSH2 0x780 JUMP JUMPDEST SWAP4 POP PUSH2 0x600 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E9 JUMP JUMPDEST PUSH2 0x609 DUP2 PUSH2 0x8AC JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x61F DUP3 PUSH2 0x775 JUMP JUMPDEST PUSH2 0x629 DUP2 DUP6 PUSH2 0x791 JUMP JUMPDEST SWAP4 POP PUSH2 0x639 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x652 PUSH1 0xA DUP4 PUSH2 0x780 JUMP JUMPDEST SWAP2 POP PUSH32 0x4E616D652074616B656E00000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x691 DUP3 DUP5 PUSH2 0x614 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6B1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6CC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6EC DUP2 DUP5 PUSH2 0x5DB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70D DUP2 PUSH2 0x645 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x73B JUMPI PUSH2 0x73A PUSH2 0x87D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x760 JUMPI PUSH2 0x75F PUSH2 0x87D JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A7 DUP3 PUSH2 0x7BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x807 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x7EC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x816 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x834 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x848 JUMPI PUSH2 0x847 PUSH2 0x84E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8C6 DUP2 PUSH2 0x79C JUMP JUMPDEST DUP2 EQ PUSH2 0x8D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND SLT 0xD1 0xFB INVALID CALLER SHR ADDRESS 0xE0 PUSH15 0x9AD8182B890B15C4209217805D17DC SHL 0x1E 0xE3 0x2E 0xA8 DUP8 0x2B PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ", "sourceMap": "200:568:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;336:135:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;301:39:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;513:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;344:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;336:135:4:-;411:4;447:17;434:30;;:9;:30;;;427:37;;336:135;;;:::o;301:39:0:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;513:253::-;598:1;574:26;;:6;581:4;574:12;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:26;;;566:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;621:13;637:12;:10;:12::i;:::-;621:28;;697:5;682:6;689:4;682:12;;;;;;:::i;:::-;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;723:4;708:5;:12;714:5;708:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;:::i;:::-;;749:5;738:23;;;756:4;738:23;;;;;;:::i;:::-;;;;;;;;513:253;;:::o;477:373:4:-;539:14;569:30;588:10;569:18;:30::i;:::-;565:279;;;771:2;755:14;751:23;738:37;734:2;730:46;720:56;;718:60;;;815:18;:16;:18::i;:::-;808:25;;;;565:279;477:373;;:::o;590:96:6:-;643:7;669:10;662:17;;590:96;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:344:7:-;;110:65;125:49;167:6;125:49;:::i;:::-;110:65;:::i;:::-;101:74;;198:6;191:5;184:21;236:4;229:5;225:16;274:3;265:6;260:3;256:16;253:25;250:2;;;291:1;288;281:12;250:2;304:41;338:6;333:3;328;304:41;:::i;:::-;91:260;;;;;;:::o;357:139::-;;441:6;428:20;419:29;;457:33;484:5;457:33;:::i;:::-;409:87;;;;:::o;516:273::-;;621:3;614:4;606:6;602:17;598:27;588:2;;639:1;636;629:12;588:2;679:6;666:20;704:79;779:3;771:6;764:4;756:6;752:17;704:79;:::i;:::-;695:88;;578:211;;;;;:::o;795:262::-;;903:2;891:9;882:7;878:23;874:32;871:2;;;919:1;916;909:12;871:2;962:1;987:53;1032:7;1023:6;1012:9;1008:22;987:53;:::i;:::-;977:63;;933:117;861:196;;;;:::o;1063:375::-;;1181:2;1169:9;1160:7;1156:23;1152:32;1149:2;;;1197:1;1194;1187:12;1149:2;1268:1;1257:9;1253:17;1240:31;1298:18;1290:6;1287:30;1284:2;;;1330:1;1327;1320:12;1284:2;1358:63;1413:7;1404:6;1393:9;1389:22;1358:63;:::i;:::-;1348:73;;1211:220;1139:299;;;;:::o;1444:118::-;1531:24;1549:5;1531:24;:::i;:::-;1526:3;1519:37;1509:53;;:::o;1568:109::-;1649:21;1664:5;1649:21;:::i;:::-;1644:3;1637:34;1627:50;;:::o;1683:364::-;;1799:39;1832:5;1799:39;:::i;:::-;1854:71;1918:6;1913:3;1854:71;:::i;:::-;1847:78;;1934:52;1979:6;1974:3;1967:4;1960:5;1956:16;1934:52;:::i;:::-;2011:29;2033:6;2011:29;:::i;:::-;2006:3;2002:39;1995:46;;1775:272;;;;;:::o;2053:377::-;;2187:39;2220:5;2187:39;:::i;:::-;2242:89;2324:6;2319:3;2242:89;:::i;:::-;2235:96;;2340:52;2385:6;2380:3;2373:4;2366:5;2362:16;2340:52;:::i;:::-;2417:6;2412:3;2408:16;2401:23;;2163:267;;;;;:::o;2436:308::-;;2599:67;2663:2;2658:3;2599:67;:::i;:::-;2592:74;;2696:12;2692:1;2687:3;2683:11;2676:33;2735:2;2730:3;2726:12;2719:19;;2582:162;;;:::o;2750:275::-;;2904:95;2995:3;2986:6;2904:95;:::i;:::-;2897:102;;3016:3;3009:10;;2886:139;;;;:::o;3031:222::-;;3162:2;3151:9;3147:18;3139:26;;3175:71;3243:1;3232:9;3228:17;3219:6;3175:71;:::i;:::-;3129:124;;;;:::o;3259:210::-;;3384:2;3373:9;3369:18;3361:26;;3397:65;3459:1;3448:9;3444:17;3435:6;3397:65;:::i;:::-;3351:118;;;;:::o;3475:313::-;;3626:2;3615:9;3611:18;3603:26;;3675:9;3669:4;3665:20;3661:1;3650:9;3646:17;3639:47;3703:78;3776:4;3767:6;3703:78;:::i;:::-;3695:86;;3593:195;;;;:::o;3794:419::-;;3998:2;3987:9;3983:18;3975:26;;4047:9;4041:4;4037:20;4033:1;4022:9;4018:17;4011:47;4075:131;4201:4;4075:131;:::i;:::-;4067:139;;3965:248;;;:::o;4219:283::-;;4285:2;4279:9;4269:19;;4327:4;4319:6;4315:17;4434:6;4422:10;4419:22;4398:18;4386:10;4383:34;4380:62;4377:2;;;4445:18;;:::i;:::-;4377:2;4485:10;4481:2;4474:22;4259:243;;;;:::o;4508:332::-;;4660:18;4652:6;4649:30;4646:2;;;4682:18;;:::i;:::-;4646:2;4767:4;4763:9;4756:4;4748:6;4744:17;4740:33;4732:41;;4828:4;4822;4818:15;4810:23;;4575:265;;;:::o;4846:99::-;;4932:5;4926:12;4916:22;;4905:40;;;:::o;4951:169::-;;5069:6;5064:3;5057:19;5109:4;5104:3;5100:14;5085:29;;5047:73;;;;:::o;5126:148::-;;5265:3;5250:18;;5240:34;;;;:::o;5280:96::-;;5346:24;5364:5;5346:24;:::i;:::-;5335:35;;5325:51;;;:::o;5382:90::-;;5459:5;5452:13;5445:21;5434:32;;5424:48;;;:::o;5478:126::-;;5555:42;5548:5;5544:54;5533:65;;5523:81;;;:::o;5610:154::-;5694:6;5689:3;5684;5671:30;5756:1;5747:6;5742:3;5738:16;5731:27;5661:103;;;:::o;5770:307::-;5838:1;5848:113;5862:6;5859:1;5856:13;5848:113;;;5947:1;5942:3;5938:11;5932:18;5928:1;5923:3;5919:11;5912:39;5884:2;5881:1;5877:10;5872:15;;5848:113;;;5979:6;5976:1;5973:13;5970:2;;;6059:1;6050:6;6045:3;6041:16;6034:27;5970:2;5819:258;;;;:::o;6083:320::-;;6164:1;6158:4;6154:12;6144:22;;6211:1;6205:4;6201:12;6232:18;6222:2;;6288:4;6280:6;6276:17;6266:27;;6222:2;6350;6342:6;6339:14;6319:18;6316:38;6313:2;;;6369:18;;:::i;:::-;6313:2;6134:269;;;;:::o;6409:180::-;6457:77;6454:1;6447:88;6554:4;6551:1;6544:15;6578:4;6575:1;6568:15;6595:180;6643:77;6640:1;6633:88;6740:4;6737:1;6730:15;6764:4;6761:1;6754:15;6781:102;;6873:2;6869:7;6864:2;6857:5;6853:14;6849:28;6839:38;;6829:54;;;:::o;6889:122::-;6962:24;6980:5;6962:24;:::i;:::-;6955:5;6952:35;6942:2;;7001:1;6998;6991:12;6942:2;6932:79;:::o" }, "methodIdentifiers": { "isTrustedForwarder(address)": "572b6c05", "names(address)": "5cf3d346", "owners(string)": "2b1fd995", "register(string)": "f2c298be" } } } }, "contracts/SimpleRegistry.sol": { "SimpleRegistry": { "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "who", "type": "address" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" } ], "name": "Registered", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "names", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "owners", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" } ], "name": "register", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "evm": { "bytecode": { "generatedSources": [], "linkReferences": {}, "object": "608060405234801561001057600080fd5b50610800806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632b1fd995146100465780635cf3d34614610076578063f2c298be146100a6575b600080fd5b610060600480360381019061005b91906104a8565b6100c2565b60405161006d91906105b9565b60405180910390f35b610090600480360381019061008b919061047f565b61010b565b60405161009d91906105d4565b60405180910390f35b6100c060048036038101906100bb91906104a8565b6101ab565b005b6001818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000602052806000526040600020600091509050805461012a90610712565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610712565b80156101a35780601f10610178576101008083540402835291602001916101a3565b820191906000526020600020905b81548152906001019060200180831161018657829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff166001826040516101d391906105a2565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024f906105f6565b60405180910390fd5b60003390508060018360405161026e91906105a2565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908051906020019061030c92919061035f565b508073ffffffffffffffffffffffffffffffffffffffff167fb3eccf73f39b1c07947c780b2b39df2a1bb058b4037b0a42d0881ca1a028a1328360405161035391906105d4565b60405180910390a25050565b82805461036b90610712565b90600052602060002090601f01602090048101928261038d57600085556103d4565b82601f106103a657805160ff19168380011785556103d4565b828001600101855582156103d4579182015b828111156103d35782518255916020019190600101906103b8565b5b5090506103e191906103e5565b5090565b5b808211156103fe5760008160009055506001016103e6565b5090565b600061041561041084610647565b610616565b90508281526020810184848401111561042d57600080fd5b6104388482856106d0565b509392505050565b60008135905061044f816107b3565b92915050565b600082601f83011261046657600080fd5b8135610476848260208601610402565b91505092915050565b60006020828403121561049157600080fd5b600061049f84828501610440565b91505092915050565b6000602082840312156104ba57600080fd5b600082013567ffffffffffffffff8111156104d457600080fd5b6104e084828501610455565b91505092915050565b6104f28161069e565b82525050565b600061050382610677565b61050d8185610682565b935061051d8185602086016106df565b610526816107a2565b840191505092915050565b600061053c82610677565b6105468185610693565b93506105568185602086016106df565b80840191505092915050565b600061056f600a83610682565b91507f4e616d652074616b656e000000000000000000000000000000000000000000006000830152602082019050919050565b60006105ae8284610531565b915081905092915050565b60006020820190506105ce60008301846104e9565b92915050565b600060208201905081810360008301526105ee81846104f8565b905092915050565b6000602082019050818103600083015261060f81610562565b9050919050565b6000604051905081810181811067ffffffffffffffff8211171561063d5761063c610773565b5b8060405250919050565b600067ffffffffffffffff82111561066257610661610773565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006106a9826106b0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b838110156106fd5780820151818401526020810190506106e2565b8381111561070c576000848401525b50505050565b6000600282049050600182168061072a57607f821691505b6020821081141561073e5761073d610744565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6107bc8161069e565b81146107c757600080fd5b5056fea2646970667358221220d1b1365c587fd166910f9a8557223507fb22ec8280cdacd18836632d75899b5f64736f6c63430008000033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x800 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2B1FD995 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x5CF3D346 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xF2C298BE EQ PUSH2 0xA6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x5B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x90 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x47F JUMP JUMPDEST PUSH2 0x10B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9D SWAP2 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBB SWAP2 SWAP1 PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0x1AB JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x12A SWAP1 PUSH2 0x712 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 0x156 SWAP1 PUSH2 0x712 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x178 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x186 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x5A2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x258 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24F SWAP1 PUSH2 0x5F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP DUP1 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x26E SWAP2 SWAP1 PUSH2 0x5A2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x30C SWAP3 SWAP2 SWAP1 PUSH2 0x35F JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB3ECCF73F39B1C07947C780B2B39DF2A1BB058B4037B0A42D0881CA1A028A132 DUP4 PUSH1 0x40 MLOAD PUSH2 0x353 SWAP2 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x36B SWAP1 PUSH2 0x712 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x38D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x3D4 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x3A6 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x3D4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x3D4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x3D3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3B8 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x3E1 SWAP2 SWAP1 PUSH2 0x3E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3FE JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3E6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x415 PUSH2 0x410 DUP5 PUSH2 0x647 JUMP JUMPDEST PUSH2 0x616 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x42D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x438 DUP5 DUP3 DUP6 PUSH2 0x6D0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x44F DUP2 PUSH2 0x7B3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x476 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x402 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x49F DUP5 DUP3 DUP6 ADD PUSH2 0x440 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E0 DUP5 DUP3 DUP6 ADD PUSH2 0x455 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4F2 DUP2 PUSH2 0x69E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x503 DUP3 PUSH2 0x677 JUMP JUMPDEST PUSH2 0x50D DUP2 DUP6 PUSH2 0x682 JUMP JUMPDEST SWAP4 POP PUSH2 0x51D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6DF JUMP JUMPDEST PUSH2 0x526 DUP2 PUSH2 0x7A2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53C DUP3 PUSH2 0x677 JUMP JUMPDEST PUSH2 0x546 DUP2 DUP6 PUSH2 0x693 JUMP JUMPDEST SWAP4 POP PUSH2 0x556 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6DF JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56F PUSH1 0xA DUP4 PUSH2 0x682 JUMP JUMPDEST SWAP2 POP PUSH32 0x4E616D652074616B656E00000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AE DUP3 DUP5 PUSH2 0x531 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5CE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5EE DUP2 DUP5 PUSH2 0x4F8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x60F DUP2 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x63D JUMPI PUSH2 0x63C PUSH2 0x773 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x662 JUMPI PUSH2 0x661 PUSH2 0x773 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A9 DUP3 PUSH2 0x6B0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6FD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6E2 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x70C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x72A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x73E JUMPI PUSH2 0x73D PUSH2 0x744 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7BC DUP2 PUSH2 0x69E JUMP JUMPDEST DUP2 EQ PUSH2 0x7C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 0xB1 CALLDATASIZE 0x5C PC PUSH32 0xD166910F9A8557223507FB22EC8280CDACD18836632D75899B5F64736F6C6343 STOP ADDMOD STOP STOP CALLER ", "sourceMap": "57:399:1:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:6587:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "91:260:7", "statements": [ { "nodeType": "YulAssignment", "src": "101:74:7", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "167:6:7" } ], "functionName": { "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "125:41:7" }, "nodeType": "YulFunctionCall", "src": "125:49:7" } ], "functionName": { "name": "allocateMemory", "nodeType": "YulIdentifier", "src": "110:14:7" }, "nodeType": "YulFunctionCall", "src": "110:65:7" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "101:5:7" } ] }, { "expression": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "191:5:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "198:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "184:6:7" }, "nodeType": "YulFunctionCall", "src": "184:21:7" }, "nodeType": "YulExpressionStatement", "src": "184:21:7" }, { "nodeType": "YulVariableDeclaration", "src": "214:27:7", "value": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "229:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "236:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "225:3:7" }, "nodeType": "YulFunctionCall", "src": "225:16:7" }, "variables": [ { "name": "dst", "nodeType": "YulTypedName", "src": "218:3:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "279:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "288:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "291:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "281:6:7" }, "nodeType": "YulFunctionCall", "src": "281:12:7" }, "nodeType": "YulExpressionStatement", "src": "281:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "260:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "265:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "256:3:7" }, "nodeType": "YulFunctionCall", "src": "256:16:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "274:3:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "253:2:7" }, "nodeType": "YulFunctionCall", "src": "253:25:7" }, "nodeType": "YulIf", "src": "250:2:7" }, { "expression": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "328:3:7" }, { "name": "dst", "nodeType": "YulIdentifier", "src": "333:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "338:6:7" } ], "functionName": { "name": "copy_calldata_to_memory", "nodeType": "YulIdentifier", "src": "304:23:7" }, "nodeType": "YulFunctionCall", "src": "304:41:7" }, "nodeType": "YulExpressionStatement", "src": "304:41:7" } ] }, "name": "abi_decode_available_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "64:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "69:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "77:3:7", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "85:5:7", "type": "" } ], "src": "7:344:7" }, { "body": { "nodeType": "YulBlock", "src": "409:87:7", "statements": [ { "nodeType": "YulAssignment", "src": "419:29:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "441:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "428:12:7" }, "nodeType": "YulFunctionCall", "src": "428:20:7" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "419:5:7" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "484:5:7" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "457:26:7" }, "nodeType": "YulFunctionCall", "src": "457:33:7" }, "nodeType": "YulExpressionStatement", "src": "457:33:7" } ] }, "name": "abi_decode_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "387:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "395:3:7", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "403:5:7", "type": "" } ], "src": "357:139:7" }, { "body": { "nodeType": "YulBlock", "src": "578:211:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "627:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "636:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "639:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "629:6:7" }, "nodeType": "YulFunctionCall", "src": "629:12:7" }, "nodeType": "YulExpressionStatement", "src": "629:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "606:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "614:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "602:3:7" }, "nodeType": "YulFunctionCall", "src": "602:17:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "621:3:7" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "598:3:7" }, "nodeType": "YulFunctionCall", "src": "598:27:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "591:6:7" }, "nodeType": "YulFunctionCall", "src": "591:35:7" }, "nodeType": "YulIf", "src": "588:2:7" }, { "nodeType": "YulVariableDeclaration", "src": "652:34:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "679:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "666:12:7" }, "nodeType": "YulFunctionCall", "src": "666:20:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "656:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "695:88:7", "value": { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "756:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "764:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "752:3:7" }, "nodeType": "YulFunctionCall", "src": "752:17:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "771:6:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "779:3:7" } ], "functionName": { "name": "abi_decode_available_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "704:47:7" }, "nodeType": "YulFunctionCall", "src": "704:79:7" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "695:5:7" } ] } ] }, "name": "abi_decode_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "556:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "564:3:7", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "572:5:7", "type": "" } ], "src": "516:273:7" }, { "body": { "nodeType": "YulBlock", "src": "861:196:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "907:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "916:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "919:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "909:6:7" }, "nodeType": "YulFunctionCall", "src": "909:12:7" }, "nodeType": "YulExpressionStatement", "src": "909:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "882:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "891:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "878:3:7" }, "nodeType": "YulFunctionCall", "src": "878:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "903:2:7", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "874:3:7" }, "nodeType": "YulFunctionCall", "src": "874:32:7" }, "nodeType": "YulIf", "src": "871:2:7" }, { "nodeType": "YulBlock", "src": "933:117:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "948:15:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "962:1:7", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "952:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "977:63:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1012:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1023:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1008:3:7" }, "nodeType": "YulFunctionCall", "src": "1008:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1032:7:7" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "987:20:7" }, "nodeType": "YulFunctionCall", "src": "987:53:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "977:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "831:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "842:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "854:6:7", "type": "" } ], "src": "795:262:7" }, { "body": { "nodeType": "YulBlock", "src": "1139:299:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1185:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1194:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1197:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1187:6:7" }, "nodeType": "YulFunctionCall", "src": "1187:12:7" }, "nodeType": "YulExpressionStatement", "src": "1187:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1160:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "1169:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "1156:3:7" }, "nodeType": "YulFunctionCall", "src": "1156:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1181:2:7", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "1152:3:7" }, "nodeType": "YulFunctionCall", "src": "1152:32:7" }, "nodeType": "YulIf", "src": "1149:2:7" }, { "nodeType": "YulBlock", "src": "1211:220:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1226:45:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1257:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1268:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1253:3:7" }, "nodeType": "YulFunctionCall", "src": "1253:17:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "1240:12:7" }, "nodeType": "YulFunctionCall", "src": "1240:31:7" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1230:6:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "1318:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1327:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1330:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1320:6:7" }, "nodeType": "YulFunctionCall", "src": "1320:12:7" }, "nodeType": "YulExpressionStatement", "src": "1320:12:7" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1290:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1298:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "1287:2:7" }, "nodeType": "YulFunctionCall", "src": "1287:30:7" }, "nodeType": "YulIf", "src": "1284:2:7" }, { "nodeType": "YulAssignment", "src": "1348:73:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1393:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1404:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1389:3:7" }, "nodeType": "YulFunctionCall", "src": "1389:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1413:7:7" } ], "functionName": { "name": "abi_decode_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "1358:30:7" }, "nodeType": "YulFunctionCall", "src": "1358:63:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1348:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1109:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "1120:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "1132:6:7", "type": "" } ], "src": "1063:375:7" }, { "body": { "nodeType": "YulBlock", "src": "1509:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1526:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1549:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1531:17:7" }, "nodeType": "YulFunctionCall", "src": "1531:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1519:6:7" }, "nodeType": "YulFunctionCall", "src": "1519:37:7" }, "nodeType": "YulExpressionStatement", "src": "1519:37:7" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1497:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1504:3:7", "type": "" } ], "src": "1444:118:7" }, { "body": { "nodeType": "YulBlock", "src": "1660:272:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1670:53:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1717:5:7" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "1684:32:7" }, "nodeType": "YulFunctionCall", "src": "1684:39:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "1674:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1732:78:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1798:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1803:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "1739:58:7" }, "nodeType": "YulFunctionCall", "src": "1739:71:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1732:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1845:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1852:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1841:3:7" }, "nodeType": "YulFunctionCall", "src": "1841:16:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "1859:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1864:6:7" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "1819:21:7" }, "nodeType": "YulFunctionCall", "src": "1819:52:7" }, "nodeType": "YulExpressionStatement", "src": "1819:52:7" }, { "nodeType": "YulAssignment", "src": "1880:46:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1891:3:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "1918:6:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "1896:21:7" }, "nodeType": "YulFunctionCall", "src": "1896:29:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1887:3:7" }, "nodeType": "YulFunctionCall", "src": "1887:39:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "1880:3:7" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1641:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1648:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "1656:3:7", "type": "" } ], "src": "1568:364:7" }, { "body": { "nodeType": "YulBlock", "src": "2048:267:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2058:53:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2105:5:7" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "2072:32:7" }, "nodeType": "YulFunctionCall", "src": "2072:39:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2062:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2120:96:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2204:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2209:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "2127:76:7" }, "nodeType": "YulFunctionCall", "src": "2127:89:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2120:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2251:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2258:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2247:3:7" }, "nodeType": "YulFunctionCall", "src": "2247:16:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "2265:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2270:6:7" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "2225:21:7" }, "nodeType": "YulFunctionCall", "src": "2225:52:7" }, "nodeType": "YulExpressionStatement", "src": "2225:52:7" }, { "nodeType": "YulAssignment", "src": "2286:23:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2297:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2302:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2293:3:7" }, "nodeType": "YulFunctionCall", "src": "2293:16:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2286:3:7" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2029:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2036:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2044:3:7", "type": "" } ], "src": "1938:377:7" }, { "body": { "nodeType": "YulBlock", "src": "2467:162:7", "statements": [ { "nodeType": "YulAssignment", "src": "2477:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2543:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2548:2:7", "type": "", "value": "10" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "2484:58:7" }, "nodeType": "YulFunctionCall", "src": "2484:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2477:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2572:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2577:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2568:3:7" }, "nodeType": "YulFunctionCall", "src": "2568:11:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "2581:12:7", "type": "", "value": "Name taken" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2561:6:7" }, "nodeType": "YulFunctionCall", "src": "2561:33:7" }, "nodeType": "YulExpressionStatement", "src": "2561:33:7" }, { "nodeType": "YulAssignment", "src": "2604:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2615:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2620:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2611:3:7" }, "nodeType": "YulFunctionCall", "src": "2611:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2604:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "2455:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2463:3:7", "type": "" } ], "src": "2321:308:7" }, { "body": { "nodeType": "YulBlock", "src": "2771:139:7", "statements": [ { "nodeType": "YulAssignment", "src": "2782:102:7", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "2871:6:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "2880:3:7" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "2789:81:7" }, "nodeType": "YulFunctionCall", "src": "2789:95:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2782:3:7" } ] }, { "nodeType": "YulAssignment", "src": "2894:10:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "2901:3:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2894:3:7" } ] } ] }, "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "2750:3:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "2756:6:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2767:3:7", "type": "" } ], "src": "2635:275:7" }, { "body": { "nodeType": "YulBlock", "src": "3014:124:7", "statements": [ { "nodeType": "YulAssignment", "src": "3024:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3036:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3047:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3032:3:7" }, "nodeType": "YulFunctionCall", "src": "3032:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3024:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3104:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3117:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3128:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3113:3:7" }, "nodeType": "YulFunctionCall", "src": "3113:17:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "3060:43:7" }, "nodeType": "YulFunctionCall", "src": "3060:71:7" }, "nodeType": "YulExpressionStatement", "src": "3060:71:7" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "2986:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "2998:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3009:4:7", "type": "" } ], "src": "2916:222:7" }, { "body": { "nodeType": "YulBlock", "src": "3262:195:7", "statements": [ { "nodeType": "YulAssignment", "src": "3272:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3284:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3295:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3280:3:7" }, "nodeType": "YulFunctionCall", "src": "3280:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3272:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3319:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3330:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3315:3:7" }, "nodeType": "YulFunctionCall", "src": "3315:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3338:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "3344:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "3334:3:7" }, "nodeType": "YulFunctionCall", "src": "3334:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3308:6:7" }, "nodeType": "YulFunctionCall", "src": "3308:47:7" }, "nodeType": "YulExpressionStatement", "src": "3308:47:7" }, { "nodeType": "YulAssignment", "src": "3364:86:7", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3436:6:7" }, { "name": "tail", "nodeType": "YulIdentifier", "src": "3445:4:7" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3372:63:7" }, "nodeType": "YulFunctionCall", "src": "3372:78:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3364:4:7" } ] } ] }, "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3234:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3246:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3257:4:7", "type": "" } ], "src": "3144:313:7" }, { "body": { "nodeType": "YulBlock", "src": "3634:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "3644:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3656:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3667:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3652:3:7" }, "nodeType": "YulFunctionCall", "src": "3652:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3644:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3691:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3702:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3687:3:7" }, "nodeType": "YulFunctionCall", "src": "3687:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3710:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "3716:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "3706:3:7" }, "nodeType": "YulFunctionCall", "src": "3706:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3680:6:7" }, "nodeType": "YulFunctionCall", "src": "3680:47:7" }, "nodeType": "YulExpressionStatement", "src": "3680:47:7" }, { "nodeType": "YulAssignment", "src": "3736:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3870:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3744:124:7" }, "nodeType": "YulFunctionCall", "src": "3744:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3736:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3614:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3629:4:7", "type": "" } ], "src": "3463:419:7" }, { "body": { "nodeType": "YulBlock", "src": "3928:243:7", "statements": [ { "nodeType": "YulAssignment", "src": "3938:19:7", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3954:2:7", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "3948:5:7" }, "nodeType": "YulFunctionCall", "src": "3948:9:7" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3938:6:7" } ] }, { "nodeType": "YulVariableDeclaration", "src": "3966:35:7", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3988:6:7" }, { "name": "size", "nodeType": "YulIdentifier", "src": "3996:4:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3984:3:7" }, "nodeType": "YulFunctionCall", "src": "3984:17:7" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", "src": "3970:10:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "4112:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "4114:16:7" }, "nodeType": "YulFunctionCall", "src": "4114:18:7" }, "nodeType": "YulExpressionStatement", "src": "4114:18:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4055:10:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4067:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "4052:2:7" }, "nodeType": "YulFunctionCall", "src": "4052:34:7" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4091:10:7" }, { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4103:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "4088:2:7" }, "nodeType": "YulFunctionCall", "src": "4088:22:7" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", "src": "4049:2:7" }, "nodeType": "YulFunctionCall", "src": "4049:62:7" }, "nodeType": "YulIf", "src": "4046:2:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4150:2:7", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4154:10:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4143:6:7" }, "nodeType": "YulFunctionCall", "src": "4143:22:7" }, "nodeType": "YulExpressionStatement", "src": "4143:22:7" } ] }, "name": "allocateMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "size", "nodeType": "YulTypedName", "src": "3912:4:7", "type": "" } ], "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "3921:6:7", "type": "" } ], "src": "3888:283:7" }, { "body": { "nodeType": "YulBlock", "src": "4244:265:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "4349:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "4351:16:7" }, "nodeType": "YulFunctionCall", "src": "4351:18:7" }, "nodeType": "YulExpressionStatement", "src": "4351:18:7" } ] }, "condition": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4321:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4329:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "4318:2:7" }, "nodeType": "YulFunctionCall", "src": "4318:30:7" }, "nodeType": "YulIf", "src": "4315:2:7" }, { "nodeType": "YulAssignment", "src": "4401:41:7", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4417:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4425:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4413:3:7" }, "nodeType": "YulFunctionCall", "src": "4413:17:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4436:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "4432:3:7" }, "nodeType": "YulFunctionCall", "src": "4432:9:7" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "4409:3:7" }, "nodeType": "YulFunctionCall", "src": "4409:33:7" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4401:4:7" } ] }, { "nodeType": "YulAssignment", "src": "4479:23:7", "value": { "arguments": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4491:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4497:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4487:3:7" }, "nodeType": "YulFunctionCall", "src": "4487:15:7" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4479:4:7" } ] } ] }, "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "length", "nodeType": "YulTypedName", "src": "4228:6:7", "type": "" } ], "returnVariables": [ { "name": "size", "nodeType": "YulTypedName", "src": "4239:4:7", "type": "" } ], "src": "4177:332:7" }, { "body": { "nodeType": "YulBlock", "src": "4574:40:7", "statements": [ { "nodeType": "YulAssignment", "src": "4585:22:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "4601:5:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "4595:5:7" }, "nodeType": "YulFunctionCall", "src": "4595:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4585:6:7" } ] } ] }, "name": "array_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "4557:5:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "4567:6:7", "type": "" } ], "src": "4515:99:7" }, { "body": { "nodeType": "YulBlock", "src": "4716:73:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4733:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4738:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4726:6:7" }, "nodeType": "YulFunctionCall", "src": "4726:19:7" }, "nodeType": "YulExpressionStatement", "src": "4726:19:7" }, { "nodeType": "YulAssignment", "src": "4754:29:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4773:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4778:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4769:3:7" }, "nodeType": "YulFunctionCall", "src": "4769:14:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "4754:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "4688:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "4693:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "4704:11:7", "type": "" } ], "src": "4620:169:7" }, { "body": { "nodeType": "YulBlock", "src": "4909:34:7", "statements": [ { "nodeType": "YulAssignment", "src": "4919:18:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "4934:3:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "4919:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "4881:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "4886:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "4897:11:7", "type": "" } ], "src": "4795:148:7" }, { "body": { "nodeType": "YulBlock", "src": "4994:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "5004:35:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5033:5:7" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "5015:17:7" }, "nodeType": "YulFunctionCall", "src": "5015:24:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "5004:7:7" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "4976:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "4986:7:7", "type": "" } ], "src": "4949:96:7" }, { "body": { "nodeType": "YulBlock", "src": "5096:81:7", "statements": [ { "nodeType": "YulAssignment", "src": "5106:65:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5121:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5128:42:7", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "5117:3:7" }, "nodeType": "YulFunctionCall", "src": "5117:54:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "5106:7:7" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "5078:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "5088:7:7", "type": "" } ], "src": "5051:126:7" }, { "body": { "nodeType": "YulBlock", "src": "5234:103:7", "statements": [ { "expression": { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "5257:3:7" }, { "name": "src", "nodeType": "YulIdentifier", "src": "5262:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5267:6:7" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", "src": "5244:12:7" }, "nodeType": "YulFunctionCall", "src": "5244:30:7" }, "nodeType": "YulExpressionStatement", "src": "5244:30:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "5315:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5320:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5311:3:7" }, "nodeType": "YulFunctionCall", "src": "5311:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5329:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5304:6:7" }, "nodeType": "YulFunctionCall", "src": "5304:27:7" }, "nodeType": "YulExpressionStatement", "src": "5304:27:7" } ] }, "name": "copy_calldata_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "5216:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "5221:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "5226:6:7", "type": "" } ], "src": "5183:154:7" }, { "body": { "nodeType": "YulBlock", "src": "5392:258:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "5402:10:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "5411:1:7", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "5406:1:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "5471:63:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "5496:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "5501:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5492:3:7" }, "nodeType": "YulFunctionCall", "src": "5492:11:7" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "5515:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "5520:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5511:3:7" }, "nodeType": "YulFunctionCall", "src": "5511:11:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "5505:5:7" }, "nodeType": "YulFunctionCall", "src": "5505:18:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5485:6:7" }, "nodeType": "YulFunctionCall", "src": "5485:39:7" }, "nodeType": "YulExpressionStatement", "src": "5485:39:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "5432:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5435:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "5429:2:7" }, "nodeType": "YulFunctionCall", "src": "5429:13:7" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "5443:19:7", "statements": [ { "nodeType": "YulAssignment", "src": "5445:15:7", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "5454:1:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5457:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5450:3:7" }, "nodeType": "YulFunctionCall", "src": "5450:10:7" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "5445:1:7" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "5425:3:7", "statements": [] }, "src": "5421:113:7" }, { "body": { "nodeType": "YulBlock", "src": "5568:76:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "5618:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5623:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5614:3:7" }, "nodeType": "YulFunctionCall", "src": "5614:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5632:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5607:6:7" }, "nodeType": "YulFunctionCall", "src": "5607:27:7" }, "nodeType": "YulExpressionStatement", "src": "5607:27:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "5549:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5552:6:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "5546:2:7" }, "nodeType": "YulFunctionCall", "src": "5546:13:7" }, "nodeType": "YulIf", "src": "5543:2:7" } ] }, "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "5374:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "5379:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "5384:6:7", "type": "" } ], "src": "5343:307:7" }, { "body": { "nodeType": "YulBlock", "src": "5707:269:7", "statements": [ { "nodeType": "YulAssignment", "src": "5717:22:7", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", "src": "5731:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5737:1:7", "type": "", "value": "2" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", "src": "5727:3:7" }, "nodeType": "YulFunctionCall", "src": "5727:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "5717:6:7" } ] }, { "nodeType": "YulVariableDeclaration", "src": "5748:38:7", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", "src": "5778:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5784:1:7", "type": "", "value": "1" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "5774:3:7" }, "nodeType": "YulFunctionCall", "src": "5774:12:7" }, "variables": [ { "name": "outOfPlaceEncoding", "nodeType": "YulTypedName", "src": "5752:18:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "5825:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "5839:27:7", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "5853:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5861:4:7", "type": "", "value": "0x7f" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "5849:3:7" }, "nodeType": "YulFunctionCall", "src": "5849:17:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "5839:6:7" } ] } ] }, "condition": { "arguments": [ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "5805:18:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "5798:6:7" }, "nodeType": "YulFunctionCall", "src": "5798:26:7" }, "nodeType": "YulIf", "src": "5795:2:7" }, { "body": { "nodeType": "YulBlock", "src": "5928:42:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x22", "nodeType": "YulIdentifier", "src": "5942:16:7" }, "nodeType": "YulFunctionCall", "src": "5942:18:7" }, "nodeType": "YulExpressionStatement", "src": "5942:18:7" } ] }, "condition": { "arguments": [ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "5892:18:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "5915:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5923:2:7", "type": "", "value": "32" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "5912:2:7" }, "nodeType": "YulFunctionCall", "src": "5912:14:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "5889:2:7" }, "nodeType": "YulFunctionCall", "src": "5889:38:7" }, "nodeType": "YulIf", "src": "5886:2:7" } ] }, "name": "extract_byte_array_length", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "data", "nodeType": "YulTypedName", "src": "5691:4:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "5700:6:7", "type": "" } ], "src": "5656:320:7" }, { "body": { "nodeType": "YulBlock", "src": "6010:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6027:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6030:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6020:6:7" }, "nodeType": "YulFunctionCall", "src": "6020:88:7" }, "nodeType": "YulExpressionStatement", "src": "6020:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6124:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6127:4:7", "type": "", "value": "0x22" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6117:6:7" }, "nodeType": "YulFunctionCall", "src": "6117:15:7" }, "nodeType": "YulExpressionStatement", "src": "6117:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6148:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6151:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "6141:6:7" }, "nodeType": "YulFunctionCall", "src": "6141:15:7" }, "nodeType": "YulExpressionStatement", "src": "6141:15:7" } ] }, "name": "panic_error_0x22", "nodeType": "YulFunctionDefinition", "src": "5982:180:7" }, { "body": { "nodeType": "YulBlock", "src": "6196:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6213:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6216:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6206:6:7" }, "nodeType": "YulFunctionCall", "src": "6206:88:7" }, "nodeType": "YulExpressionStatement", "src": "6206:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6310:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6313:4:7", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6303:6:7" }, "nodeType": "YulFunctionCall", "src": "6303:15:7" }, "nodeType": "YulExpressionStatement", "src": "6303:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6334:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6337:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "6327:6:7" }, "nodeType": "YulFunctionCall", "src": "6327:15:7" }, "nodeType": "YulExpressionStatement", "src": "6327:15:7" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "6168:180:7" }, { "body": { "nodeType": "YulBlock", "src": "6402:54:7", "statements": [ { "nodeType": "YulAssignment", "src": "6412:38:7", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "6430:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6437:2:7", "type": "", "value": "31" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "6426:3:7" }, "nodeType": "YulFunctionCall", "src": "6426:14:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6446:2:7", "type": "", "value": "31" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "6442:3:7" }, "nodeType": "YulFunctionCall", "src": "6442:7:7" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "6422:3:7" }, "nodeType": "YulFunctionCall", "src": "6422:28:7" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "6412:6:7" } ] } ] }, "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "6385:5:7", "type": "" } ], "returnVariables": [ { "name": "result", "nodeType": "YulTypedName", "src": "6395:6:7", "type": "" } ], "src": "6354:102:7" }, { "body": { "nodeType": "YulBlock", "src": "6505:79:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "6562:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "6571:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6574:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "6564:6:7" }, "nodeType": "YulFunctionCall", "src": "6564:12:7" }, "nodeType": "YulExpressionStatement", "src": "6564:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "6528:5:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "6553:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "6535:17:7" }, "nodeType": "YulFunctionCall", "src": "6535:24:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "6525:2:7" }, "nodeType": "YulFunctionCall", "src": "6525:35:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "6518:6:7" }, "nodeType": "YulFunctionCall", "src": "6518:43:7" }, "nodeType": "YulIf", "src": "6515:2:7" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "6498:5:7", "type": "" } ], "src": "6462:122:7" } ] }, "contents": "{\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocateMemory(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(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_string_memory_ptr(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_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(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 10)\n\n mstore(add(pos, 0), \"Name taken\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\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 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 abi_encode_tuple_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 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 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 // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\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 array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\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 panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n", "id": 7, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80632b1fd995146100465780635cf3d34614610076578063f2c298be146100a6575b600080fd5b610060600480360381019061005b91906104a8565b6100c2565b60405161006d91906105b9565b60405180910390f35b610090600480360381019061008b919061047f565b61010b565b60405161009d91906105d4565b60405180910390f35b6100c060048036038101906100bb91906104a8565b6101ab565b005b6001818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000602052806000526040600020600091509050805461012a90610712565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610712565b80156101a35780601f10610178576101008083540402835291602001916101a3565b820191906000526020600020905b81548152906001019060200180831161018657829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff166001826040516101d391906105a2565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024f906105f6565b60405180910390fd5b60003390508060018360405161026e91906105a2565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908051906020019061030c92919061035f565b508073ffffffffffffffffffffffffffffffffffffffff167fb3eccf73f39b1c07947c780b2b39df2a1bb058b4037b0a42d0881ca1a028a1328360405161035391906105d4565b60405180910390a25050565b82805461036b90610712565b90600052602060002090601f01602090048101928261038d57600085556103d4565b82601f106103a657805160ff19168380011785556103d4565b828001600101855582156103d4579182015b828111156103d35782518255916020019190600101906103b8565b5b5090506103e191906103e5565b5090565b5b808211156103fe5760008160009055506001016103e6565b5090565b600061041561041084610647565b610616565b90508281526020810184848401111561042d57600080fd5b6104388482856106d0565b509392505050565b60008135905061044f816107b3565b92915050565b600082601f83011261046657600080fd5b8135610476848260208601610402565b91505092915050565b60006020828403121561049157600080fd5b600061049f84828501610440565b91505092915050565b6000602082840312156104ba57600080fd5b600082013567ffffffffffffffff8111156104d457600080fd5b6104e084828501610455565b91505092915050565b6104f28161069e565b82525050565b600061050382610677565b61050d8185610682565b935061051d8185602086016106df565b610526816107a2565b840191505092915050565b600061053c82610677565b6105468185610693565b93506105568185602086016106df565b80840191505092915050565b600061056f600a83610682565b91507f4e616d652074616b656e000000000000000000000000000000000000000000006000830152602082019050919050565b60006105ae8284610531565b915081905092915050565b60006020820190506105ce60008301846104e9565b92915050565b600060208201905081810360008301526105ee81846104f8565b905092915050565b6000602082019050818103600083015261060f81610562565b9050919050565b6000604051905081810181811067ffffffffffffffff8211171561063d5761063c610773565b5b8060405250919050565b600067ffffffffffffffff82111561066257610661610773565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006106a9826106b0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b838110156106fd5780820151818401526020810190506106e2565b8381111561070c576000848401525b50505050565b6000600282049050600182168061072a57607f821691505b6020821081141561073e5761073d610744565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6107bc8161069e565b81146107c757600080fd5b5056fea2646970667358221220d1b1365c587fd166910f9a8557223507fb22ec8280cdacd18836632d75899b5f64736f6c63430008000033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2B1FD995 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x5CF3D346 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xF2C298BE EQ PUSH2 0xA6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x5B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x90 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x47F JUMP JUMPDEST PUSH2 0x10B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9D SWAP2 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBB SWAP2 SWAP1 PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0x1AB JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x12A SWAP1 PUSH2 0x712 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 0x156 SWAP1 PUSH2 0x712 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x178 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x186 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x5A2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x258 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24F SWAP1 PUSH2 0x5F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP DUP1 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x26E SWAP2 SWAP1 PUSH2 0x5A2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x30C SWAP3 SWAP2 SWAP1 PUSH2 0x35F JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB3ECCF73F39B1C07947C780B2B39DF2A1BB058B4037B0A42D0881CA1A028A132 DUP4 PUSH1 0x40 MLOAD PUSH2 0x353 SWAP2 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x36B SWAP1 PUSH2 0x712 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x38D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x3D4 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x3A6 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x3D4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x3D4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x3D3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3B8 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x3E1 SWAP2 SWAP1 PUSH2 0x3E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3FE JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3E6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x415 PUSH2 0x410 DUP5 PUSH2 0x647 JUMP JUMPDEST PUSH2 0x616 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x42D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x438 DUP5 DUP3 DUP6 PUSH2 0x6D0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x44F DUP2 PUSH2 0x7B3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x476 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x402 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x49F DUP5 DUP3 DUP6 ADD PUSH2 0x440 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E0 DUP5 DUP3 DUP6 ADD PUSH2 0x455 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4F2 DUP2 PUSH2 0x69E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x503 DUP3 PUSH2 0x677 JUMP JUMPDEST PUSH2 0x50D DUP2 DUP6 PUSH2 0x682 JUMP JUMPDEST SWAP4 POP PUSH2 0x51D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6DF JUMP JUMPDEST PUSH2 0x526 DUP2 PUSH2 0x7A2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53C DUP3 PUSH2 0x677 JUMP JUMPDEST PUSH2 0x546 DUP2 DUP6 PUSH2 0x693 JUMP JUMPDEST SWAP4 POP PUSH2 0x556 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6DF JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56F PUSH1 0xA DUP4 PUSH2 0x682 JUMP JUMPDEST SWAP2 POP PUSH32 0x4E616D652074616B656E00000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AE DUP3 DUP5 PUSH2 0x531 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5CE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5EE DUP2 DUP5 PUSH2 0x4F8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x60F DUP2 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x63D JUMPI PUSH2 0x63C PUSH2 0x773 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x662 JUMPI PUSH2 0x661 PUSH2 0x773 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A9 DUP3 PUSH2 0x6B0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6FD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6E2 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x70C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x72A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x73E JUMPI PUSH2 0x73D PUSH2 0x744 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7BC DUP2 PUSH2 0x69E JUMP JUMPDEST DUP2 EQ PUSH2 0x7C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 0xB1 CALLDATASIZE 0x5C PC PUSH32 0xD166910F9A8557223507FB22EC8280CDACD18836632D75899B5F64736F6C6343 STOP ADDMOD STOP STOP CALLER ", "sourceMap": "57:399:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;185:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;142:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;230:224;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;185:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;142:39::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;230:224::-;315:1;291:26;;:6;298:4;291:12;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:26;;;283:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;338:13;354:10;338:26;;385:5;370:6;377:4;370:12;;;;;;:::i;:::-;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;411:4;396:5;:12;402:5;396:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;:::i;:::-;;437:5;426:23;;;444:4;426:23;;;;;;:::i;:::-;;;;;;;;230:224;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:344:7:-;;110:65;125:49;167:6;125:49;:::i;:::-;110:65;:::i;:::-;101:74;;198:6;191:5;184:21;236:4;229:5;225:16;274:3;265:6;260:3;256:16;253:25;250:2;;;291:1;288;281:12;250:2;304:41;338:6;333:3;328;304:41;:::i;:::-;91:260;;;;;;:::o;357:139::-;;441:6;428:20;419:29;;457:33;484:5;457:33;:::i;:::-;409:87;;;;:::o;516:273::-;;621:3;614:4;606:6;602:17;598:27;588:2;;639:1;636;629:12;588:2;679:6;666:20;704:79;779:3;771:6;764:4;756:6;752:17;704:79;:::i;:::-;695:88;;578:211;;;;;:::o;795:262::-;;903:2;891:9;882:7;878:23;874:32;871:2;;;919:1;916;909:12;871:2;962:1;987:53;1032:7;1023:6;1012:9;1008:22;987:53;:::i;:::-;977:63;;933:117;861:196;;;;:::o;1063:375::-;;1181:2;1169:9;1160:7;1156:23;1152:32;1149:2;;;1197:1;1194;1187:12;1149:2;1268:1;1257:9;1253:17;1240:31;1298:18;1290:6;1287:30;1284:2;;;1330:1;1327;1320:12;1284:2;1358:63;1413:7;1404:6;1393:9;1389:22;1358:63;:::i;:::-;1348:73;;1211:220;1139:299;;;;:::o;1444:118::-;1531:24;1549:5;1531:24;:::i;:::-;1526:3;1519:37;1509:53;;:::o;1568:364::-;;1684:39;1717:5;1684:39;:::i;:::-;1739:71;1803:6;1798:3;1739:71;:::i;:::-;1732:78;;1819:52;1864:6;1859:3;1852:4;1845:5;1841:16;1819:52;:::i;:::-;1896:29;1918:6;1896:29;:::i;:::-;1891:3;1887:39;1880:46;;1660:272;;;;;:::o;1938:377::-;;2072:39;2105:5;2072:39;:::i;:::-;2127:89;2209:6;2204:3;2127:89;:::i;:::-;2120:96;;2225:52;2270:6;2265:3;2258:4;2251:5;2247:16;2225:52;:::i;:::-;2302:6;2297:3;2293:16;2286:23;;2048:267;;;;;:::o;2321:308::-;;2484:67;2548:2;2543:3;2484:67;:::i;:::-;2477:74;;2581:12;2577:1;2572:3;2568:11;2561:33;2620:2;2615:3;2611:12;2604:19;;2467:162;;;:::o;2635:275::-;;2789:95;2880:3;2871:6;2789:95;:::i;:::-;2782:102;;2901:3;2894:10;;2771:139;;;;:::o;2916:222::-;;3047:2;3036:9;3032:18;3024:26;;3060:71;3128:1;3117:9;3113:17;3104:6;3060:71;:::i;:::-;3014:124;;;;:::o;3144:313::-;;3295:2;3284:9;3280:18;3272:26;;3344:9;3338:4;3334:20;3330:1;3319:9;3315:17;3308:47;3372:78;3445:4;3436:6;3372:78;:::i;:::-;3364:86;;3262:195;;;;:::o;3463:419::-;;3667:2;3656:9;3652:18;3644:26;;3716:9;3710:4;3706:20;3702:1;3691:9;3687:17;3680:47;3744:131;3870:4;3744:131;:::i;:::-;3736:139;;3634:248;;;:::o;3888:283::-;;3954:2;3948:9;3938:19;;3996:4;3988:6;3984:17;4103:6;4091:10;4088:22;4067:18;4055:10;4052:34;4049:62;4046:2;;;4114:18;;:::i;:::-;4046:2;4154:10;4150:2;4143:22;3928:243;;;;:::o;4177:332::-;;4329:18;4321:6;4318:30;4315:2;;;4351:18;;:::i;:::-;4315:2;4436:4;4432:9;4425:4;4417:6;4413:17;4409:33;4401:41;;4497:4;4491;4487:15;4479:23;;4244:265;;;:::o;4515:99::-;;4601:5;4595:12;4585:22;;4574:40;;;:::o;4620:169::-;;4738:6;4733:3;4726:19;4778:4;4773:3;4769:14;4754:29;;4716:73;;;;:::o;4795:148::-;;4934:3;4919:18;;4909:34;;;;:::o;4949:96::-;;5015:24;5033:5;5015:24;:::i;:::-;5004:35;;4994:51;;;:::o;5051:126::-;;5128:42;5121:5;5117:54;5106:65;;5096:81;;;:::o;5183:154::-;5267:6;5262:3;5257;5244:30;5329:1;5320:6;5315:3;5311:16;5304:27;5234:103;;;:::o;5343:307::-;5411:1;5421:113;5435:6;5432:1;5429:13;5421:113;;;5520:1;5515:3;5511:11;5505:18;5501:1;5496:3;5492:11;5485:39;5457:2;5454:1;5450:10;5445:15;;5421:113;;;5552:6;5549:1;5546:13;5543:2;;;5632:1;5623:6;5618:3;5614:16;5607:27;5543:2;5392:258;;;;:::o;5656:320::-;;5737:1;5731:4;5727:12;5717:22;;5784:1;5778:4;5774:12;5805:18;5795:2;;5861:4;5853:6;5849:17;5839:27;;5795:2;5923;5915:6;5912:14;5892:18;5889:38;5886:2;;;5942:18;;:::i;:::-;5886:2;5707:269;;;;:::o;5982:180::-;6030:77;6027:1;6020:88;6127:4;6124:1;6117:15;6151:4;6148:1;6141:15;6168:180;6216:77;6213:1;6206:88;6313:4;6310:1;6303:15;6337:4;6334:1;6327:15;6354:102;;6446:2;6442:7;6437:2;6430:5;6426:14;6422:28;6412:38;;6402:54;;;:::o;6462:122::-;6535:24;6553:5;6535:24;:::i;:::-;6528:5;6525:35;6515:2;;6574:1;6571;6564:12;6515:2;6505:79;:::o" }, "methodIdentifiers": { "names(address)": "5cf3d346", "owners(string)": "2b1fd995", "register(string)": "f2c298be" } } } }, "openzeppelin-solidity/contracts/cryptography/ECDSA.sol": { "ECDSA": { "abi": [], "evm": { "bytecode": { "generatedSources": [], "linkReferences": {}, "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209424b2efedea48135665a4ad01a7f4c58ad145aed7d4d37d0b396e3bbae4667064736f6c63430008000033", "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP5 0x24 0xB2 0xEF 0xED 0xEA 0x48 SGT JUMP PUSH6 0xA4AD01A7F4C5 DUP11 0xD1 GASLIMIT 0xAE 0xD7 0xD4 0xD3 PUSH30 0xB396E3BBAE4667064736F6C634300080000330000000000000000000000 ", "sourceMap": "264:3896:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209424b2efedea48135665a4ad01a7f4c58ad145aed7d4d37d0b396e3bbae4667064736f6c63430008000033", "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP5 0x24 0xB2 0xEF 0xED 0xEA 0x48 SGT JUMP PUSH6 0xA4AD01A7F4C5 DUP11 0xD1 GASLIMIT 0xAE 0xD7 0xD4 0xD3 PUSH30 0xB396E3BBAE4667064736F6C634300080000330000000000000000000000 ", "sourceMap": "264:3896:2:-:0;;;;;;;;" }, "methodIdentifiers": {} } } }, "openzeppelin-solidity/contracts/drafts/EIP712.sol": { "EIP712": { "abi": [], "evm": { "bytecode": { "generatedSources": [], "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "deployedBytecode": { "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "methodIdentifiers": {} } } }, "openzeppelin-solidity/contracts/metatx/BaseRelayRecipient.sol": { "BaseRelayRecipient": { "abi": [ { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ], "evm": { "bytecode": { "generatedSources": [], "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "deployedBytecode": { "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "methodIdentifiers": { "isTrustedForwarder(address)": "572b6c05" } } } }, "openzeppelin-solidity/contracts/metatx/MinimalForwarder.sol": { "MinimalForwarder": { "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct MinimalForwarder.ForwardRequest", "name": "req", "type": "tuple" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "execute", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "getNonce", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct MinimalForwarder.ForwardRequest", "name": "req", "type": "tuple" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "verify", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ], "evm": { "bytecode": { "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1446:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "72:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "89:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "112:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "94:17:7" }, "nodeType": "YulFunctionCall", "src": "94:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "82:6:7" }, "nodeType": "YulFunctionCall", "src": "82:37:7" }, "nodeType": "YulExpressionStatement", "src": "82:37:7" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "60:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "67:3:7", "type": "" } ], "src": "7:118:7" }, { "body": { "nodeType": "YulBlock", "src": "196:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "213:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "236:5:7" } ], "functionName": { "name": "cleanup_t_bytes32", "nodeType": "YulIdentifier", "src": "218:17:7" }, "nodeType": "YulFunctionCall", "src": "218:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "206:6:7" }, "nodeType": "YulFunctionCall", "src": "206:37:7" }, "nodeType": "YulExpressionStatement", "src": "206:37:7" } ] }, "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "184:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "191:3:7", "type": "" } ], "src": "131:118:7" }, { "body": { "nodeType": "YulBlock", "src": "320:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "337:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "360:5:7" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "342:17:7" }, "nodeType": "YulFunctionCall", "src": "342:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "330:6:7" }, "nodeType": "YulFunctionCall", "src": "330:37:7" }, "nodeType": "YulExpressionStatement", "src": "330:37:7" } ] }, "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "308:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "315:3:7", "type": "" } ], "src": "255:118:7" }, { "body": { "nodeType": "YulBlock", "src": "589:454:7", "statements": [ { "nodeType": "YulAssignment", "src": "599:27:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "611:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "622:3:7", "type": "", "value": "160" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "607:3:7" }, "nodeType": "YulFunctionCall", "src": "607:19:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "599:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "680:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "693:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "704:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "689:3:7" }, "nodeType": "YulFunctionCall", "src": "689:17:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "636:43:7" }, "nodeType": "YulFunctionCall", "src": "636:71:7" }, "nodeType": "YulExpressionStatement", "src": "636:71:7" }, { "expression": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "761:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "774:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "785:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "770:3:7" }, "nodeType": "YulFunctionCall", "src": "770:18:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "717:43:7" }, "nodeType": "YulFunctionCall", "src": "717:72:7" }, "nodeType": "YulExpressionStatement", "src": "717:72:7" }, { "expression": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", "src": "843:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "856:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "867:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "852:3:7" }, "nodeType": "YulFunctionCall", "src": "852:18:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "799:43:7" }, "nodeType": "YulFunctionCall", "src": "799:72:7" }, "nodeType": "YulExpressionStatement", "src": "799:72:7" }, { "expression": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", "src": "925:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "938:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "949:2:7", "type": "", "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "934:3:7" }, "nodeType": "YulFunctionCall", "src": "934:18:7" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "881:43:7" }, "nodeType": "YulFunctionCall", "src": "881:72:7" }, "nodeType": "YulExpressionStatement", "src": "881:72:7" }, { "expression": { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", "src": "1007:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1020:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1031:3:7", "type": "", "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1016:3:7" }, "nodeType": "YulFunctionCall", "src": "1016:19:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "963:43:7" }, "nodeType": "YulFunctionCall", "src": "963:73:7" }, "nodeType": "YulExpressionStatement", "src": "963:73:7" } ] }, "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "529:9:7", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", "src": "541:6:7", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", "src": "549:6:7", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", "src": "557:6:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "565:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "573:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "584:4:7", "type": "" } ], "src": "379:664:7" }, { "body": { "nodeType": "YulBlock", "src": "1094:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "1104:35:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1133:5:7" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "1115:17:7" }, "nodeType": "YulFunctionCall", "src": "1115:24:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1104:7:7" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1076:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1086:7:7", "type": "" } ], "src": "1049:96:7" }, { "body": { "nodeType": "YulBlock", "src": "1196:32:7", "statements": [ { "nodeType": "YulAssignment", "src": "1206:16:7", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "1217:5:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1206:7:7" } ] } ] }, "name": "cleanup_t_bytes32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1178:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1188:7:7", "type": "" } ], "src": "1151:77:7" }, { "body": { "nodeType": "YulBlock", "src": "1279:81:7", "statements": [ { "nodeType": "YulAssignment", "src": "1289:65:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1304:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1311:42:7", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "1300:3:7" }, "nodeType": "YulFunctionCall", "src": "1300:54:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1289:7:7" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1261:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1271:7:7", "type": "" } ], "src": "1234:126:7" }, { "body": { "nodeType": "YulBlock", "src": "1411:32:7", "statements": [ { "nodeType": "YulAssignment", "src": "1421:16:7", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "1432:5:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1421:7:7" } ] } ] }, "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1393:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1403:7:7", "type": "" } ], "src": "1366:77:7" } ] }, "contents": "{\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_address_to_t_address_fromStack(value4, add(headStart, 128))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n}\n", "id": 7, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, "object": "6101206040523480156200001257600080fd5b506040518060400160405280600f81526020017f47534e763220466f7277617264657200000000000000000000000000000000008152506040518060400160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525060008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260c081815250508160e081815250504660a08181525050620000e78184846200010260201b60201c565b60808181525050806101008181525050505050505062000216565b600083838346306040516020016200011f95949392919062000171565b6040516020818303038152906040528051906020012090509392505050565b6200014981620001ce565b82525050565b6200015a81620001e2565b82525050565b6200016b816200020c565b82525050565b600060a0820190506200018860008301886200014f565b6200019760208301876200014f565b620001a660408301866200014f565b620001b5606083018562000160565b620001c460808301846200013e565b9695505050505050565b6000620001db82620001ec565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60805160a05160c05160e051610100516111586200025b60003960006105c301526000610605015260006105e4015260006105700152600061059801526111586000f3fe6080604052600436106100345760003560e01c80632d0335ab1461003957806347153f8214610076578063bf5d3bdb146100a7575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b919061086e565b6100e4565b60405161006d9190610e84565b60405180910390f35b610090600480360381019061008b9190610897565b61012c565b60405161009e929190610cad565b60405180910390f35b3480156100b357600080fd5b506100ce60048036038101906100c99190610897565b610304565b6040516100db9190610c92565b60405180910390f35b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000606061013b858585610304565b61017a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017190610e04565b60405180910390fd5b6001856080013561018b9190610f39565b6000808760000160208101906101a1919061086e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000808660200160208101906101f5919061086e565b73ffffffffffffffffffffffffffffffffffffffff1687606001358860400135898060a001906102259190610e9f565b8b6000016020810190610238919061086e565b60405160200161024a93929190610c1a565b6040516020818303038152906040526040516102669190610c44565b600060405180830381858888f193505050503d80600081146102a4576040519150601f19603f3d011682016040523d82523d6000602084013e6102a9565b606091505b5091509150603f87606001356102bf9190610f8f565b5a116102f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8181935093505050935093915050565b60008061040d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506103ff7fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e48886000016020810190610386919061086e565b896020016020810190610399919061086e565b8a604001358b606001358c608001358d8060a001906103b89190610e9f565b6040516103c6929190610c01565b60405180910390206040516020016103e49796959493929190610cdd565b604051602081830303815290604052805190602001206104b9565b6104f290919063ffffffff16565b9050846080013560008087600001602081019061042a919061086e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156104af5750846000016020810190610480919061086e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b9150509392505050565b60006104c361056c565b826040516020016104d5929190610c5b565b604051602081830303815290604052805190602001209050919050565b60006041825114610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052f90610e24565b60405180910390fd5b60008060006020850151925060408501519150606085015160001a90506105618682858561062f565b935050505092915050565b60007f00000000000000000000000000000000000000000000000000000000000000004614156105be577f0000000000000000000000000000000000000000000000000000000000000000905061062c565b6106297f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006107ba565b90505b90565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115610697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068e90610e44565b60405180910390fd5b601b8460ff1614806106ac5750601c8460ff16145b6106eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e290610e64565b60405180910390fd5b6000600186868686604051600081526020016040526040516107109493929190610d9f565b6020604051602081039080840390855afa158015610732573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a590610de4565b60405180910390fd5b80915050949350505050565b600083838346306040516020016107d5959493929190610d4c565b6040516020818303038152906040528051906020012090509392505050565b6000813590506108038161110b565b92915050565b60008083601f84011261081b57600080fd5b8235905067ffffffffffffffff81111561083457600080fd5b60208301915083600182028301111561084c57600080fd5b9250929050565b600060c0828403121561086557600080fd5b81905092915050565b60006020828403121561088057600080fd5b600061088e848285016107f4565b91505092915050565b6000806000604084860312156108ac57600080fd5b600084013567ffffffffffffffff8111156108c657600080fd5b6108d286828701610853565b935050602084013567ffffffffffffffff8111156108ef57600080fd5b6108fb86828701610809565b92509250509250925092565b61091081610fc0565b82525050565b61092761092282610fc0565b611061565b82525050565b61093681610fd2565b82525050565b61094581610fde565b82525050565b61095c61095782610fde565b611073565b82525050565b600061096e8385610f12565b935061097b83858461101f565b82840190509392505050565b600061099282610ef6565b61099c8185610f01565b93506109ac81856020860161102e565b6109b5816110ed565b840191505092915050565b60006109cb82610ef6565b6109d58185610f12565b93506109e581856020860161102e565b80840191505092915050565b60006109fe601883610f1d565b91507f45434453413a20696e76616c6964207369676e617475726500000000000000006000830152602082019050919050565b6000610a3e603283610f1d565b91507f4d696e696d616c466f727761726465723a207369676e617475726520646f657360008301527f206e6f74206d61746368207265717565737400000000000000000000000000006020830152604082019050919050565b6000610aa4601f83610f1d565b91507f45434453413a20696e76616c6964207369676e6174757265206c656e677468006000830152602082019050919050565b6000610ae4600283610f2e565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000610b24602283610f1d565b91507f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008301527f75650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610b8a602283610f1d565b91507f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008301527f75650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610bec81611008565b82525050565b610bfb81611012565b82525050565b6000610c0e828486610962565b91508190509392505050565b6000610c27828587610962565b9150610c338284610916565b601482019150819050949350505050565b6000610c5082846109c0565b915081905092915050565b6000610c6682610ad7565b9150610c72828561094b565b602082019150610c82828461094b565b6020820191508190509392505050565b6000602082019050610ca7600083018461092d565b92915050565b6000604082019050610cc2600083018561092d565b8181036020830152610cd48184610987565b90509392505050565b600060e082019050610cf2600083018a61093c565b610cff6020830189610907565b610d0c6040830188610907565b610d196060830187610be3565b610d266080830186610be3565b610d3360a0830185610be3565b610d4060c083018461093c565b98975050505050505050565b600060a082019050610d61600083018861093c565b610d6e602083018761093c565b610d7b604083018661093c565b610d886060830185610be3565b610d956080830184610907565b9695505050505050565b6000608082019050610db4600083018761093c565b610dc16020830186610bf2565b610dce604083018561093c565b610ddb606083018461093c565b95945050505050565b60006020820190508181036000830152610dfd816109f1565b9050919050565b60006020820190508181036000830152610e1d81610a31565b9050919050565b60006020820190508181036000830152610e3d81610a97565b9050919050565b60006020820190508181036000830152610e5d81610b17565b9050919050565b60006020820190508181036000830152610e7d81610b7d565b9050919050565b6000602082019050610e996000830184610be3565b92915050565b60008083356001602003843603038112610eb857600080fd5b80840192508235915067ffffffffffffffff821115610ed657600080fd5b602083019250600182023603831315610eee57600080fd5b509250929050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000610f4482611008565b9150610f4f83611008565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610f8457610f8361108f565b5b828201905092915050565b6000610f9a82611008565b9150610fa583611008565b925082610fb557610fb46110be565b5b828204905092915050565b6000610fcb82610fe8565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561104c578082015181840152602081019050611031565b8381111561105b576000848401525b50505050565b600061106c8261107d565b9050919050565b6000819050919050565b6000611088826110fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b61111481610fc0565b811461111f57600080fd5b5056fea264697066735822122047e3a0546deb09241119a7e4f42f75730fd5cc86609f7079a8e341297850ac0064736f6c63430008000033", "opcodes": "PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x47534E763220466F727761726465720000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x302E302E31000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x0 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F SWAP1 POP DUP3 PUSH1 0xC0 DUP2 DUP2 MSTORE POP POP DUP2 PUSH1 0xE0 DUP2 DUP2 MSTORE POP POP CHAINID PUSH1 0xA0 DUP2 DUP2 MSTORE POP POP PUSH3 0xE7 DUP2 DUP5 DUP5 PUSH3 0x102 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x80 DUP2 DUP2 MSTORE POP POP DUP1 PUSH2 0x100 DUP2 DUP2 MSTORE POP POP POP POP POP POP POP PUSH3 0x216 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP4 CHAINID ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x11F SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x171 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH3 0x149 DUP2 PUSH3 0x1CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x15A DUP2 PUSH3 0x1E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x16B DUP2 PUSH3 0x20C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH3 0x188 PUSH1 0x0 DUP4 ADD DUP9 PUSH3 0x14F JUMP JUMPDEST PUSH3 0x197 PUSH1 0x20 DUP4 ADD DUP8 PUSH3 0x14F JUMP JUMPDEST PUSH3 0x1A6 PUSH1 0x40 DUP4 ADD DUP7 PUSH3 0x14F JUMP JUMPDEST PUSH3 0x1B5 PUSH1 0x60 DUP4 ADD DUP6 PUSH3 0x160 JUMP JUMPDEST PUSH3 0x1C4 PUSH1 0x80 DUP4 ADD DUP5 PUSH3 0x13E JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1DB DUP3 PUSH3 0x1EC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x1158 PUSH3 0x25B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x5C3 ADD MSTORE PUSH1 0x0 PUSH2 0x605 ADD MSTORE PUSH1 0x0 PUSH2 0x5E4 ADD MSTORE PUSH1 0x0 PUSH2 0x570 ADD MSTORE PUSH1 0x0 PUSH2 0x598 ADD MSTORE PUSH2 0x1158 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x39 JUMPI DUP1 PUSH4 0x47153F82 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xBF5D3BDB EQ PUSH2 0xA7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x90 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x12C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9E SWAP3 SWAP2 SWAP1 PUSH2 0xCAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC9 SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x304 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDB SWAP2 SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH2 0x13B DUP6 DUP6 DUP6 PUSH2 0x304 JUMP JUMPDEST PUSH2 0x17A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x171 SWAP1 PUSH2 0xE04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x18B SWAP2 SWAP1 PUSH2 0xF39 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP8 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1A1 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP7 PUSH1 0x20 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F5 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH1 0x60 ADD CALLDATALOAD DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP10 DUP1 PUSH1 0xA0 ADD SWAP1 PUSH2 0x225 SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST DUP12 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x24A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x266 SWAP2 SWAP1 PUSH2 0xC44 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2A4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2A9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x3F DUP8 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x2BF SWAP2 SWAP1 PUSH2 0xF8F JUMP JUMPDEST GAS GT PUSH2 0x2F4 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x40D 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 PUSH1 0x0 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 0x3FF PUSH32 0xDD8F4B70B0F4393E889BD39128A30628A78B61816A9EB8199759E7A349657E48 DUP9 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x386 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP10 PUSH1 0x20 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x399 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP11 PUSH1 0x40 ADD CALLDATALOAD DUP12 PUSH1 0x60 ADD CALLDATALOAD DUP13 PUSH1 0x80 ADD CALLDATALOAD DUP14 DUP1 PUSH1 0xA0 ADD SWAP1 PUSH2 0x3B8 SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C6 SWAP3 SWAP2 SWAP1 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3E4 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x4B9 JUMP JUMPDEST PUSH2 0x4F2 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x80 ADD CALLDATALOAD PUSH1 0x0 DUP1 DUP8 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x42A SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ DUP1 ISZERO PUSH2 0x4AF JUMPI POP DUP5 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x480 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C3 PUSH2 0x56C JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4D5 SWAP3 SWAP2 SWAP1 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x41 DUP3 MLOAD EQ PUSH2 0x538 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x52F SWAP1 PUSH2 0xE24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH2 0x561 DUP7 DUP3 DUP6 DUP6 PUSH2 0x62F JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 CHAINID EQ ISZERO PUSH2 0x5BE JUMPI PUSH32 0x0 SWAP1 POP PUSH2 0x62C JUMP JUMPDEST PUSH2 0x629 PUSH32 0x0 PUSH32 0x0 PUSH32 0x0 PUSH2 0x7BA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP3 PUSH1 0x0 SHR GT ISZERO PUSH2 0x697 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x68E SWAP1 PUSH2 0xE44 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1B DUP5 PUSH1 0xFF AND EQ DUP1 PUSH2 0x6AC JUMPI POP PUSH1 0x1C DUP5 PUSH1 0xFF AND EQ JUMPDEST PUSH2 0x6EB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6E2 SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x710 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x732 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x7AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A5 SWAP1 PUSH2 0xDE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP4 CHAINID ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7D5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x803 DUP2 PUSH2 0x110B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x81B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x84C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x865 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x88E DUP5 DUP3 DUP6 ADD PUSH2 0x7F4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8D2 DUP7 DUP3 DUP8 ADD PUSH2 0x853 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8FB DUP7 DUP3 DUP8 ADD PUSH2 0x809 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x910 DUP2 PUSH2 0xFC0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x927 PUSH2 0x922 DUP3 PUSH2 0xFC0 JUMP JUMPDEST PUSH2 0x1061 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x936 DUP2 PUSH2 0xFD2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x945 DUP2 PUSH2 0xFDE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x95C PUSH2 0x957 DUP3 PUSH2 0xFDE JUMP JUMPDEST PUSH2 0x1073 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x96E DUP4 DUP6 PUSH2 0xF12 JUMP JUMPDEST SWAP4 POP PUSH2 0x97B DUP4 DUP6 DUP5 PUSH2 0x101F JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x992 DUP3 PUSH2 0xEF6 JUMP JUMPDEST PUSH2 0x99C DUP2 DUP6 PUSH2 0xF01 JUMP JUMPDEST SWAP4 POP PUSH2 0x9AC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x102E JUMP JUMPDEST PUSH2 0x9B5 DUP2 PUSH2 0x10ED JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CB DUP3 PUSH2 0xEF6 JUMP JUMPDEST PUSH2 0x9D5 DUP2 DUP6 PUSH2 0xF12 JUMP JUMPDEST SWAP4 POP PUSH2 0x9E5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x102E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9FE PUSH1 0x18 DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA3E PUSH1 0x32 DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x4D696E696D616C466F727761726465723A207369676E617475726520646F6573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206E6F74206D6174636820726571756573740000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAA4 PUSH1 0x1F DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE4 PUSH1 0x2 DUP4 PUSH2 0xF2E JUMP JUMPDEST SWAP2 POP PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB24 PUSH1 0x22 DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB8A PUSH1 0x22 DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBEC DUP2 PUSH2 0x1008 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xBFB DUP2 PUSH2 0x1012 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC0E DUP3 DUP5 DUP7 PUSH2 0x962 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC27 DUP3 DUP6 DUP8 PUSH2 0x962 JUMP JUMPDEST SWAP2 POP PUSH2 0xC33 DUP3 DUP5 PUSH2 0x916 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC50 DUP3 DUP5 PUSH2 0x9C0 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC66 DUP3 PUSH2 0xAD7 JUMP JUMPDEST SWAP2 POP PUSH2 0xC72 DUP3 DUP6 PUSH2 0x94B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xC82 DUP3 DUP5 PUSH2 0x94B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x92D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xCC2 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x92D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xCD4 DUP2 DUP5 PUSH2 0x987 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 ADD SWAP1 POP PUSH2 0xCF2 PUSH1 0x0 DUP4 ADD DUP11 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xCFF PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x907 JUMP JUMPDEST PUSH2 0xD0C PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x907 JUMP JUMPDEST PUSH2 0xD19 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0xD26 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0xD33 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0xD40 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x93C JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0xD61 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xD6E PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xD7B PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xD88 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0xD95 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x907 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xDB4 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xDC1 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0xDCE PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xDDB PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x93C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDFD DUP2 PUSH2 0x9F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE1D DUP2 PUSH2 0xA31 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE3D DUP2 PUSH2 0xA97 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE5D DUP2 PUSH2 0xB17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE7D DUP2 PUSH2 0xB7D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE99 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xBE3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xEB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xED6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0xEEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF44 DUP3 PUSH2 0x1008 JUMP JUMPDEST SWAP2 POP PUSH2 0xF4F DUP4 PUSH2 0x1008 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xF84 JUMPI PUSH2 0xF83 PUSH2 0x108F JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF9A DUP3 PUSH2 0x1008 JUMP JUMPDEST SWAP2 POP PUSH2 0xFA5 DUP4 PUSH2 0x1008 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xFB5 JUMPI PUSH2 0xFB4 PUSH2 0x10BE JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFCB DUP3 PUSH2 0xFE8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x104C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1031 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x105B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x106C DUP3 PUSH2 0x107D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1088 DUP3 PUSH2 0x10FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1114 DUP2 PUSH2 0xFC0 JUMP JUMPDEST DUP2 EQ PUSH2 0x111F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0xE3 LOG0 SLOAD PUSH14 0xEB09241119A7E4F42F75730FD5CC DUP7 PUSH1 0x9F PUSH17 0x79A8E341297850AC0064736F6C63430008 STOP STOP CALLER ", "sourceMap": "169:1642:5:-:0;;;601:51;;;;;;;;;;2316:542:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2381:18;2418:4;2402:22;;;;;;2381:43;;2434:21;2474:7;2458:25;;;;;;2434:49;;2493:16;2512:95;2493:114;;2632:10;2617:25;;;;;;2670:13;2652:31;;;;;;2712:13;2693:32;;;;;;2762:58;2784:8;2794:10;2806:13;2762:21;;;:58;;:::i;:::-;2735:85;;;;;;2843:8;2830:21;;;;;;2316:542;;;;;169:1642:5;;3225:327:3;3327:7;3404:8;3430:4;3452:7;3477:13;3516:4;3376:159;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3353:192;;;;;;3346:199;;3225:327;;;;;:::o;7:118:7:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;72:53;;:::o;131:118::-;218:24;236:5;218:24;:::i;:::-;213:3;206:37;196:53;;:::o;255:118::-;342:24;360:5;342:24;:::i;:::-;337:3;330:37;320:53;;:::o;379:664::-;;622:3;611:9;607:19;599:27;;636:71;704:1;693:9;689:17;680:6;636:71;:::i;:::-;717:72;785:2;774:9;770:18;761:6;717:72;:::i;:::-;799;867:2;856:9;852:18;843:6;799:72;:::i;:::-;881;949:2;938:9;934:18;925:6;881:72;:::i;:::-;963:73;1031:3;1020:9;1016:19;1007:6;963:73;:::i;:::-;589:454;;;;;;;;:::o;1049:96::-;;1115:24;1133:5;1115:24;:::i;:::-;1104:35;;1094:51;;;:::o;1151:77::-;;1217:5;1206:16;;1196:32;;;:::o;1234:126::-;;1311:42;1304:5;1300:54;1289:65;;1279:81;;;:::o;1366:77::-;;1432:5;1421:16;;1411:32;;;:::o;169:1642:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:16555:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "59:87:7", "statements": [ { "nodeType": "YulAssignment", "src": "69:29:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "91:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "78:12:7" }, "nodeType": "YulFunctionCall", "src": "78:20:7" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "69:5:7" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "134:5:7" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "107:26:7" }, "nodeType": "YulFunctionCall", "src": "107:33:7" }, "nodeType": "YulExpressionStatement", "src": "107:33:7" } ] }, "name": "abi_decode_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "37:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "45:3:7", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "53:5:7", "type": "" } ], "src": "7:139:7" }, { "body": { "nodeType": "YulBlock", "src": "239:277:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "288:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "297:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "300:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "290:6:7" }, "nodeType": "YulFunctionCall", "src": "290:12:7" }, "nodeType": "YulExpressionStatement", "src": "290:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "267:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "275:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "263:3:7" }, "nodeType": "YulFunctionCall", "src": "263:17:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "282:3:7" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "259:3:7" }, "nodeType": "YulFunctionCall", "src": "259:27:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "252:6:7" }, "nodeType": "YulFunctionCall", "src": "252:35:7" }, "nodeType": "YulIf", "src": "249:2:7" }, { "nodeType": "YulAssignment", "src": "313:30:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "336:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "323:12:7" }, "nodeType": "YulFunctionCall", "src": "323:20:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "313:6:7" } ] }, { "body": { "nodeType": "YulBlock", "src": "386:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "395:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "398:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "388:6:7" }, "nodeType": "YulFunctionCall", "src": "388:12:7" }, "nodeType": "YulExpressionStatement", "src": "388:12:7" } ] }, "condition": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "358:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "366:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "355:2:7" }, "nodeType": "YulFunctionCall", "src": "355:30:7" }, "nodeType": "YulIf", "src": "352:2:7" }, { "nodeType": "YulAssignment", "src": "411:29:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "427:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "435:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "423:3:7" }, "nodeType": "YulFunctionCall", "src": "423:17:7" }, "variableNames": [ { "name": "arrayPos", "nodeType": "YulIdentifier", "src": "411:8:7" } ] }, { "body": { "nodeType": "YulBlock", "src": "494:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "503:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "506:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "496:6:7" }, "nodeType": "YulFunctionCall", "src": "496:12:7" }, "nodeType": "YulExpressionStatement", "src": "496:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "arrayPos", "nodeType": "YulIdentifier", "src": "459:8:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "473:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "481:4:7", "type": "", "value": "0x01" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", "src": "469:3:7" }, "nodeType": "YulFunctionCall", "src": "469:17:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "455:3:7" }, "nodeType": "YulFunctionCall", "src": "455:32:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "489:3:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "452:2:7" }, "nodeType": "YulFunctionCall", "src": "452:41:7" }, "nodeType": "YulIf", "src": "449:2:7" } ] }, "name": "abi_decode_t_bytes_calldata_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "206:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "214:3:7", "type": "" } ], "returnVariables": [ { "name": "arrayPos", "nodeType": "YulTypedName", "src": "222:8:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "232:6:7", "type": "" } ], "src": "165:351:7" }, { "body": { "nodeType": "YulBlock", "src": "653:86:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "693:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "702:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "705:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "695:6:7" }, "nodeType": "YulFunctionCall", "src": "695:12:7" }, "nodeType": "YulExpressionStatement", "src": "695:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "end", "nodeType": "YulIdentifier", "src": "674:3:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "679:6:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "670:3:7" }, "nodeType": "YulFunctionCall", "src": "670:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "688:3:7", "type": "", "value": "192" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "666:3:7" }, "nodeType": "YulFunctionCall", "src": "666:26:7" }, "nodeType": "YulIf", "src": "663:2:7" }, { "nodeType": "YulAssignment", "src": "718:15:7", "value": { "name": "offset", "nodeType": "YulIdentifier", "src": "727:6:7" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "718:5:7" } ] } ] }, "name": "abi_decode_t_struct$_ForwardRequest_$504_calldata_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "631:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "639:3:7", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "647:5:7", "type": "" } ], "src": "568:171:7" }, { "body": { "nodeType": "YulBlock", "src": "811:196:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "857:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "866:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "869:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "859:6:7" }, "nodeType": "YulFunctionCall", "src": "859:12:7" }, "nodeType": "YulExpressionStatement", "src": "859:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "832:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "841:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "828:3:7" }, "nodeType": "YulFunctionCall", "src": "828:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "853:2:7", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "824:3:7" }, "nodeType": "YulFunctionCall", "src": "824:32:7" }, "nodeType": "YulIf", "src": "821:2:7" }, { "nodeType": "YulBlock", "src": "883:117:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "898:15:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "912:1:7", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "902:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "927:63:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "962:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "973:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "958:3:7" }, "nodeType": "YulFunctionCall", "src": "958:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "982:7:7" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "937:20:7" }, "nodeType": "YulFunctionCall", "src": "937:53:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "927:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "781:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "792:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "804:6:7", "type": "" } ], "src": "745:262:7" }, { "body": { "nodeType": "YulBlock", "src": "1148:562:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1194:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1203:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1206:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1196:6:7" }, "nodeType": "YulFunctionCall", "src": "1196:12:7" }, "nodeType": "YulExpressionStatement", "src": "1196:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1169:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "1178:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "1165:3:7" }, "nodeType": "YulFunctionCall", "src": "1165:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1190:2:7", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "1161:3:7" }, "nodeType": "YulFunctionCall", "src": "1161:32:7" }, "nodeType": "YulIf", "src": "1158:2:7" }, { "nodeType": "YulBlock", "src": "1220:243:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1235:45:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1266:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1277:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1262:3:7" }, "nodeType": "YulFunctionCall", "src": "1262:17:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "1249:12:7" }, "nodeType": "YulFunctionCall", "src": "1249:31:7" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1239:6:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "1327:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1336:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1339:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1329:6:7" }, "nodeType": "YulFunctionCall", "src": "1329:12:7" }, "nodeType": "YulExpressionStatement", "src": "1329:12:7" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1299:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1307:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "1296:2:7" }, "nodeType": "YulFunctionCall", "src": "1296:30:7" }, "nodeType": "YulIf", "src": "1293:2:7" }, { "nodeType": "YulAssignment", "src": "1357:96:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1425:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1436:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1421:3:7" }, "nodeType": "YulFunctionCall", "src": "1421:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1445:7:7" } ], "functionName": { "name": "abi_decode_t_struct$_ForwardRequest_$504_calldata_ptr", "nodeType": "YulIdentifier", "src": "1367:53:7" }, "nodeType": "YulFunctionCall", "src": "1367:86:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1357:6:7" } ] } ] }, { "nodeType": "YulBlock", "src": "1473:230:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1488:46:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1519:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1530:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1515:3:7" }, "nodeType": "YulFunctionCall", "src": "1515:18:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "1502:12:7" }, "nodeType": "YulFunctionCall", "src": "1502:32:7" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1492:6:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "1581:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1590:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1593:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1583:6:7" }, "nodeType": "YulFunctionCall", "src": "1583:12:7" }, "nodeType": "YulExpressionStatement", "src": "1583:12:7" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1553:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1561:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "1550:2:7" }, "nodeType": "YulFunctionCall", "src": "1550:30:7" }, "nodeType": "YulIf", "src": "1547:2:7" }, { "nodeType": "YulAssignment", "src": "1611:82:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1665:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1676:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1661:3:7" }, "nodeType": "YulFunctionCall", "src": "1661:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1685:7:7" } ], "functionName": { "name": "abi_decode_t_bytes_calldata_ptr", "nodeType": "YulIdentifier", "src": "1629:31:7" }, "nodeType": "YulFunctionCall", "src": "1629:64:7" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "1611:6:7" }, { "name": "value2", "nodeType": "YulIdentifier", "src": "1619:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_struct$_ForwardRequest_$504_calldata_ptrt_bytes_calldata_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1102:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "1113:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "1125:6:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "1133:6:7", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", "src": "1141:6:7", "type": "" } ], "src": "1013:697:7" }, { "body": { "nodeType": "YulBlock", "src": "1781:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1798:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1821:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1803:17:7" }, "nodeType": "YulFunctionCall", "src": "1803:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1791:6:7" }, "nodeType": "YulFunctionCall", "src": "1791:37:7" }, "nodeType": "YulExpressionStatement", "src": "1791:37:7" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1769:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1776:3:7", "type": "" } ], "src": "1716:118:7" }, { "body": { "nodeType": "YulBlock", "src": "1923:74:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1940:3:7" }, { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1983:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1965:17:7" }, "nodeType": "YulFunctionCall", "src": "1965:24:7" } ], "functionName": { "name": "leftAlign_t_address", "nodeType": "YulIdentifier", "src": "1945:19:7" }, "nodeType": "YulFunctionCall", "src": "1945:45:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1933:6:7" }, "nodeType": "YulFunctionCall", "src": "1933:58:7" }, "nodeType": "YulExpressionStatement", "src": "1933:58:7" } ] }, "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1911:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1918:3:7", "type": "" } ], "src": "1840:157:7" }, { "body": { "nodeType": "YulBlock", "src": "2062:50:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2079:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2099:5:7" } ], "functionName": { "name": "cleanup_t_bool", "nodeType": "YulIdentifier", "src": "2084:14:7" }, "nodeType": "YulFunctionCall", "src": "2084:21:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2072:6:7" }, "nodeType": "YulFunctionCall", "src": "2072:34:7" }, "nodeType": "YulExpressionStatement", "src": "2072:34:7" } ] }, "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2050:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2057:3:7", "type": "" } ], "src": "2003:109:7" }, { "body": { "nodeType": "YulBlock", "src": "2183:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2200:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2223:5:7" } ], "functionName": { "name": "cleanup_t_bytes32", "nodeType": "YulIdentifier", "src": "2205:17:7" }, "nodeType": "YulFunctionCall", "src": "2205:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2193:6:7" }, "nodeType": "YulFunctionCall", "src": "2193:37:7" }, "nodeType": "YulExpressionStatement", "src": "2193:37:7" } ] }, "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2171:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2178:3:7", "type": "" } ], "src": "2118:118:7" }, { "body": { "nodeType": "YulBlock", "src": "2325:74:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2342:3:7" }, { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2385:5:7" } ], "functionName": { "name": "cleanup_t_bytes32", "nodeType": "YulIdentifier", "src": "2367:17:7" }, "nodeType": "YulFunctionCall", "src": "2367:24:7" } ], "functionName": { "name": "leftAlign_t_bytes32", "nodeType": "YulIdentifier", "src": "2347:19:7" }, "nodeType": "YulFunctionCall", "src": "2347:45:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2335:6:7" }, "nodeType": "YulFunctionCall", "src": "2335:58:7" }, "nodeType": "YulExpressionStatement", "src": "2335:58:7" } ] }, "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2313:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2320:3:7", "type": "" } ], "src": "2242:157:7" }, { "body": { "nodeType": "YulBlock", "src": "2545:196:7", "statements": [ { "nodeType": "YulAssignment", "src": "2555:95:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2638:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2643:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "2562:75:7" }, "nodeType": "YulFunctionCall", "src": "2562:88:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2555:3:7" } ] }, { "expression": { "arguments": [ { "name": "start", "nodeType": "YulIdentifier", "src": "2684:5:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "2691:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2696:6:7" } ], "functionName": { "name": "copy_calldata_to_memory", "nodeType": "YulIdentifier", "src": "2660:23:7" }, "nodeType": "YulFunctionCall", "src": "2660:43:7" }, "nodeType": "YulExpressionStatement", "src": "2660:43:7" }, { "nodeType": "YulAssignment", "src": "2712:23:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2723:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2728:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2719:3:7" }, "nodeType": "YulFunctionCall", "src": "2719:16:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2712:3:7" } ] } ] }, "name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "start", "nodeType": "YulTypedName", "src": "2518:5:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "2525:6:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2533:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2541:3:7", "type": "" } ], "src": "2427:314:7" }, { "body": { "nodeType": "YulBlock", "src": "2837:270:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2847:52:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2893:5:7" } ], "functionName": { "name": "array_length_t_bytes_memory_ptr", "nodeType": "YulIdentifier", "src": "2861:31:7" }, "nodeType": "YulFunctionCall", "src": "2861:38:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2851:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2908:77:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2973:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2978:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "2915:57:7" }, "nodeType": "YulFunctionCall", "src": "2915:70:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2908:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3020:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3027:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3016:3:7" }, "nodeType": "YulFunctionCall", "src": "3016:16:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "3034:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "3039:6:7" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "2994:21:7" }, "nodeType": "YulFunctionCall", "src": "2994:52:7" }, "nodeType": "YulExpressionStatement", "src": "2994:52:7" }, { "nodeType": "YulAssignment", "src": "3055:46:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3066:3:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "3093:6:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "3071:21:7" }, "nodeType": "YulFunctionCall", "src": "3071:29:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3062:3:7" }, "nodeType": "YulFunctionCall", "src": "3062:39:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "3055:3:7" } ] } ] }, "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2818:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2825:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2833:3:7", "type": "" } ], "src": "2747:360:7" }, { "body": { "nodeType": "YulBlock", "src": "3221:265:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "3231:52:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3277:5:7" } ], "functionName": { "name": "array_length_t_bytes_memory_ptr", "nodeType": "YulIdentifier", "src": "3245:31:7" }, "nodeType": "YulFunctionCall", "src": "3245:38:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "3235:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "3292:95:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3375:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "3380:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "3299:75:7" }, "nodeType": "YulFunctionCall", "src": "3299:88:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3292:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3422:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3429:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3418:3:7" }, "nodeType": "YulFunctionCall", "src": "3418:16:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "3436:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "3441:6:7" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "3396:21:7" }, "nodeType": "YulFunctionCall", "src": "3396:52:7" }, "nodeType": "YulExpressionStatement", "src": "3396:52:7" }, { "nodeType": "YulAssignment", "src": "3457:23:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3468:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "3473:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3464:3:7" }, "nodeType": "YulFunctionCall", "src": "3464:16:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "3457:3:7" } ] } ] }, "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "3202:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "3209:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "3217:3:7", "type": "" } ], "src": "3113:373:7" }, { "body": { "nodeType": "YulBlock", "src": "3638:176:7", "statements": [ { "nodeType": "YulAssignment", "src": "3648:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3714:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3719:2:7", "type": "", "value": "24" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3655:58:7" }, "nodeType": "YulFunctionCall", "src": "3655:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3648:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3743:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3748:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3739:3:7" }, "nodeType": "YulFunctionCall", "src": "3739:11:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "3752:26:7", "type": "", "value": "ECDSA: invalid signature" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3732:6:7" }, "nodeType": "YulFunctionCall", "src": "3732:47:7" }, "nodeType": "YulExpressionStatement", "src": "3732:47:7" }, { "nodeType": "YulAssignment", "src": "3789:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3800:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3805:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3796:3:7" }, "nodeType": "YulFunctionCall", "src": "3796:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "3789:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "3626:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "3634:3:7", "type": "" } ], "src": "3492:322:7" }, { "body": { "nodeType": "YulBlock", "src": "3966:236:7", "statements": [ { "nodeType": "YulAssignment", "src": "3976:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4042:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4047:2:7", "type": "", "value": "50" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3983:58:7" }, "nodeType": "YulFunctionCall", "src": "3983:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3976:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4071:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4076:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4067:3:7" }, "nodeType": "YulFunctionCall", "src": "4067:11:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "4080:34:7", "type": "", "value": "MinimalForwarder: signature does" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4060:6:7" }, "nodeType": "YulFunctionCall", "src": "4060:55:7" }, "nodeType": "YulExpressionStatement", "src": "4060:55:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4136:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4141:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4132:3:7" }, "nodeType": "YulFunctionCall", "src": "4132:12:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "4146:20:7", "type": "", "value": " not match request" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4125:6:7" }, "nodeType": "YulFunctionCall", "src": "4125:42:7" }, "nodeType": "YulExpressionStatement", "src": "4125:42:7" }, { "nodeType": "YulAssignment", "src": "4177:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4188:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4193:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4184:3:7" }, "nodeType": "YulFunctionCall", "src": "4184:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "4177:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "3954:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "3962:3:7", "type": "" } ], "src": "3820:382:7" }, { "body": { "nodeType": "YulBlock", "src": "4354:183:7", "statements": [ { "nodeType": "YulAssignment", "src": "4364:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4430:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4435:2:7", "type": "", "value": "31" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "4371:58:7" }, "nodeType": "YulFunctionCall", "src": "4371:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4364:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4459:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4464:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4455:3:7" }, "nodeType": "YulFunctionCall", "src": "4455:11:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "4468:33:7", "type": "", "value": "ECDSA: invalid signature length" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4448:6:7" }, "nodeType": "YulFunctionCall", "src": "4448:54:7" }, "nodeType": "YulExpressionStatement", "src": "4448:54:7" }, { "nodeType": "YulAssignment", "src": "4512:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4523:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4528:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4519:3:7" }, "nodeType": "YulFunctionCall", "src": "4519:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "4512:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "4342:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "4350:3:7", "type": "" } ], "src": "4208:329:7" }, { "body": { "nodeType": "YulBlock", "src": "4707:232:7", "statements": [ { "nodeType": "YulAssignment", "src": "4717:91:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4801:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4806:1:7", "type": "", "value": "2" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "4724:76:7" }, "nodeType": "YulFunctionCall", "src": "4724:84:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4717:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4829:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4834:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4825:3:7" }, "nodeType": "YulFunctionCall", "src": "4825:11:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4838:66:7", "type": "", "value": "0x1901000000000000000000000000000000000000000000000000000000000000" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4818:6:7" }, "nodeType": "YulFunctionCall", "src": "4818:87:7" }, "nodeType": "YulExpressionStatement", "src": "4818:87:7" }, { "nodeType": "YulAssignment", "src": "4915:18:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4926:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4931:1:7", "type": "", "value": "2" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4922:3:7" }, "nodeType": "YulFunctionCall", "src": "4922:11:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "4915:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "4695:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "4703:3:7", "type": "" } ], "src": "4543:396:7" }, { "body": { "nodeType": "YulBlock", "src": "5091:220:7", "statements": [ { "nodeType": "YulAssignment", "src": "5101:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5167:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5172:2:7", "type": "", "value": "34" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "5108:58:7" }, "nodeType": "YulFunctionCall", "src": "5108:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5101:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5196:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5201:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5192:3:7" }, "nodeType": "YulFunctionCall", "src": "5192:11:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "5205:34:7", "type": "", "value": "ECDSA: invalid signature 's' val" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5185:6:7" }, "nodeType": "YulFunctionCall", "src": "5185:55:7" }, "nodeType": "YulExpressionStatement", "src": "5185:55:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5261:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5266:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5257:3:7" }, "nodeType": "YulFunctionCall", "src": "5257:12:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "5271:4:7", "type": "", "value": "ue" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5250:6:7" }, "nodeType": "YulFunctionCall", "src": "5250:26:7" }, "nodeType": "YulExpressionStatement", "src": "5250:26:7" }, { "nodeType": "YulAssignment", "src": "5286:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5297:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5302:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5293:3:7" }, "nodeType": "YulFunctionCall", "src": "5293:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "5286:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "5079:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "5087:3:7", "type": "" } ], "src": "4945:366:7" }, { "body": { "nodeType": "YulBlock", "src": "5463:220:7", "statements": [ { "nodeType": "YulAssignment", "src": "5473:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5539:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5544:2:7", "type": "", "value": "34" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "5480:58:7" }, "nodeType": "YulFunctionCall", "src": "5480:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5473:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5568:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5573:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5564:3:7" }, "nodeType": "YulFunctionCall", "src": "5564:11:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "5577:34:7", "type": "", "value": "ECDSA: invalid signature 'v' val" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5557:6:7" }, "nodeType": "YulFunctionCall", "src": "5557:55:7" }, "nodeType": "YulExpressionStatement", "src": "5557:55:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5633:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5638:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5629:3:7" }, "nodeType": "YulFunctionCall", "src": "5629:12:7" }, { "kind": "string", "nodeType": "YulLiteral", "src": "5643:4:7", "type": "", "value": "ue" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5622:6:7" }, "nodeType": "YulFunctionCall", "src": "5622:26:7" }, "nodeType": "YulExpressionStatement", "src": "5622:26:7" }, { "nodeType": "YulAssignment", "src": "5658:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5669:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5674:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5665:3:7" }, "nodeType": "YulFunctionCall", "src": "5665:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "5658:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "5451:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "5459:3:7", "type": "" } ], "src": "5317:366:7" }, { "body": { "nodeType": "YulBlock", "src": "5754:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5771:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5794:5:7" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "5776:17:7" }, "nodeType": "YulFunctionCall", "src": "5776:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5764:6:7" }, "nodeType": "YulFunctionCall", "src": "5764:37:7" }, "nodeType": "YulExpressionStatement", "src": "5764:37:7" } ] }, "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "5742:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "5749:3:7", "type": "" } ], "src": "5689:118:7" }, { "body": { "nodeType": "YulBlock", "src": "5874:51:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5891:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5912:5:7" } ], "functionName": { "name": "cleanup_t_uint8", "nodeType": "YulIdentifier", "src": "5896:15:7" }, "nodeType": "YulFunctionCall", "src": "5896:22:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5884:6:7" }, "nodeType": "YulFunctionCall", "src": "5884:35:7" }, "nodeType": "YulExpressionStatement", "src": "5884:35:7" } ] }, "name": "abi_encode_t_uint8_to_t_uint8_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "5862:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "5869:3:7", "type": "" } ], "src": "5813:112:7" }, { "body": { "nodeType": "YulBlock", "src": "6075:147:7", "statements": [ { "nodeType": "YulAssignment", "src": "6086:110:7", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "6175:6:7" }, { "name": "value1", "nodeType": "YulIdentifier", "src": "6183:6:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "6192:3:7" } ], "functionName": { "name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "6093:81:7" }, "nodeType": "YulFunctionCall", "src": "6093:103:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6086:3:7" } ] }, { "nodeType": "YulAssignment", "src": "6206:10:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "6213:3:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "6206:3:7" } ] } ] }, "name": "abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "6046:3:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "6052:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "6060:6:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "6071:3:7", "type": "" } ], "src": "5931:291:7" }, { "body": { "nodeType": "YulBlock", "src": "6400:260:7", "statements": [ { "nodeType": "YulAssignment", "src": "6411:110:7", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "6500:6:7" }, { "name": "value1", "nodeType": "YulIdentifier", "src": "6508:6:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "6517:3:7" } ], "functionName": { "name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "6418:81:7" }, "nodeType": "YulFunctionCall", "src": "6418:103:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6411:3:7" } ] }, { "expression": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", "src": "6593:6:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "6602:3:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "6531:61:7" }, "nodeType": "YulFunctionCall", "src": "6531:75:7" }, "nodeType": "YulExpressionStatement", "src": "6531:75:7" }, { "nodeType": "YulAssignment", "src": "6615:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6626:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6631:2:7", "type": "", "value": "20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "6622:3:7" }, "nodeType": "YulFunctionCall", "src": "6622:12:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6615:3:7" } ] }, { "nodeType": "YulAssignment", "src": "6644:10:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "6651:3:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "6644:3:7" } ] } ] }, "name": "abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "6363:3:7", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", "src": "6369:6:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "6377:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "6385:6:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "6396:3:7", "type": "" } ], "src": "6228:432:7" }, { "body": { "nodeType": "YulBlock", "src": "6800:137:7", "statements": [ { "nodeType": "YulAssignment", "src": "6811:100:7", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "6898:6:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "6907:3:7" } ], "functionName": { "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "6818:79:7" }, "nodeType": "YulFunctionCall", "src": "6818:93:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6811:3:7" } ] }, { "nodeType": "YulAssignment", "src": "6921:10:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "6928:3:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "6921:3:7" } ] } ] }, "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "6779:3:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "6785:6:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "6796:3:7", "type": "" } ], "src": "6666:271:7" }, { "body": { "nodeType": "YulBlock", "src": "7188:418:7", "statements": [ { "nodeType": "YulAssignment", "src": "7199:155:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "7350:3:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "7206:142:7" }, "nodeType": "YulFunctionCall", "src": "7206:148:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "7199:3:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "7426:6:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "7435:3:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "7364:61:7" }, "nodeType": "YulFunctionCall", "src": "7364:75:7" }, "nodeType": "YulExpressionStatement", "src": "7364:75:7" }, { "nodeType": "YulAssignment", "src": "7448:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "7459:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7464:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "7455:3:7" }, "nodeType": "YulFunctionCall", "src": "7455:12:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "7448:3:7" } ] }, { "expression": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "7539:6:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "7548:3:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "7477:61:7" }, "nodeType": "YulFunctionCall", "src": "7477:75:7" }, "nodeType": "YulExpressionStatement", "src": "7477:75:7" }, { "nodeType": "YulAssignment", "src": "7561:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "7572:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7577:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "7568:3:7" }, "nodeType": "YulFunctionCall", "src": "7568:12:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "7561:3:7" } ] }, { "nodeType": "YulAssignment", "src": "7590:10:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "7597:3:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "7590:3:7" } ] } ] }, "name": "abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "7159:3:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "7165:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "7173:6:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "7184:3:7", "type": "" } ], "src": "6943:663:7" }, { "body": { "nodeType": "YulBlock", "src": "7704:118:7", "statements": [ { "nodeType": "YulAssignment", "src": "7714:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "7726:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7737:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "7722:3:7" }, "nodeType": "YulFunctionCall", "src": "7722:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "7714:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "7788:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "7801:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7812:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "7797:3:7" }, "nodeType": "YulFunctionCall", "src": "7797:17:7" } ], "functionName": { "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulIdentifier", "src": "7750:37:7" }, "nodeType": "YulFunctionCall", "src": "7750:65:7" }, "nodeType": "YulExpressionStatement", "src": "7750:65:7" } ] }, "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "7676:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "7688:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "7699:4:7", "type": "" } ], "src": "7612:210:7" }, { "body": { "nodeType": "YulBlock", "src": "7966:269:7", "statements": [ { "nodeType": "YulAssignment", "src": "7976:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "7988:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7999:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "7984:3:7" }, "nodeType": "YulFunctionCall", "src": "7984:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "7976:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "8050:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8063:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8074:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8059:3:7" }, "nodeType": "YulFunctionCall", "src": "8059:17:7" } ], "functionName": { "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulIdentifier", "src": "8012:37:7" }, "nodeType": "YulFunctionCall", "src": "8012:65:7" }, "nodeType": "YulExpressionStatement", "src": "8012:65:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8098:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8109:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8094:3:7" }, "nodeType": "YulFunctionCall", "src": "8094:18:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "8118:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "8124:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "8114:3:7" }, "nodeType": "YulFunctionCall", "src": "8114:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "8087:6:7" }, "nodeType": "YulFunctionCall", "src": "8087:48:7" }, "nodeType": "YulExpressionStatement", "src": "8087:48:7" }, { "nodeType": "YulAssignment", "src": "8144:84:7", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "8214:6:7" }, { "name": "tail", "nodeType": "YulIdentifier", "src": "8223:4:7" } ], "functionName": { "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "8152:61:7" }, "nodeType": "YulFunctionCall", "src": "8152:76:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "8144:4:7" } ] } ] }, "name": "abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "7930:9:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "7942:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "7950:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "7961:4:7", "type": "" } ], "src": "7828:407:7" }, { "body": { "nodeType": "YulBlock", "src": "8507:620:7", "statements": [ { "nodeType": "YulAssignment", "src": "8517:27:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8529:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8540:3:7", "type": "", "value": "224" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8525:3:7" }, "nodeType": "YulFunctionCall", "src": "8525:19:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "8517:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "8598:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8611:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8622:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8607:3:7" }, "nodeType": "YulFunctionCall", "src": "8607:17:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "8554:43:7" }, "nodeType": "YulFunctionCall", "src": "8554:71:7" }, "nodeType": "YulExpressionStatement", "src": "8554:71:7" }, { "expression": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "8679:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8692:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8703:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8688:3:7" }, "nodeType": "YulFunctionCall", "src": "8688:18:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "8635:43:7" }, "nodeType": "YulFunctionCall", "src": "8635:72:7" }, "nodeType": "YulExpressionStatement", "src": "8635:72:7" }, { "expression": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", "src": "8761:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8774:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8785:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8770:3:7" }, "nodeType": "YulFunctionCall", "src": "8770:18:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "8717:43:7" }, "nodeType": "YulFunctionCall", "src": "8717:72:7" }, "nodeType": "YulExpressionStatement", "src": "8717:72:7" }, { "expression": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", "src": "8843:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8856:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8867:2:7", "type": "", "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8852:3:7" }, "nodeType": "YulFunctionCall", "src": "8852:18:7" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "8799:43:7" }, "nodeType": "YulFunctionCall", "src": "8799:72:7" }, "nodeType": "YulExpressionStatement", "src": "8799:72:7" }, { "expression": { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", "src": "8925:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8938:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8949:3:7", "type": "", "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8934:3:7" }, "nodeType": "YulFunctionCall", "src": "8934:19:7" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "8881:43:7" }, "nodeType": "YulFunctionCall", "src": "8881:73:7" }, "nodeType": "YulExpressionStatement", "src": "8881:73:7" }, { "expression": { "arguments": [ { "name": "value5", "nodeType": "YulIdentifier", "src": "9008:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9021:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9032:3:7", "type": "", "value": "160" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9017:3:7" }, "nodeType": "YulFunctionCall", "src": "9017:19:7" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "8964:43:7" }, "nodeType": "YulFunctionCall", "src": "8964:73:7" }, "nodeType": "YulExpressionStatement", "src": "8964:73:7" }, { "expression": { "arguments": [ { "name": "value6", "nodeType": "YulIdentifier", "src": "9091:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9104:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9115:3:7", "type": "", "value": "192" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9100:3:7" }, "nodeType": "YulFunctionCall", "src": "9100:19:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "9047:43:7" }, "nodeType": "YulFunctionCall", "src": "9047:73:7" }, "nodeType": "YulExpressionStatement", "src": "9047:73:7" } ] }, "name": "abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "8431:9:7", "type": "" }, { "name": "value6", "nodeType": "YulTypedName", "src": "8443:6:7", "type": "" }, { "name": "value5", "nodeType": "YulTypedName", "src": "8451:6:7", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", "src": "8459:6:7", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", "src": "8467:6:7", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", "src": "8475:6:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "8483:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "8491:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "8502:4:7", "type": "" } ], "src": "8241:886:7" }, { "body": { "nodeType": "YulBlock", "src": "9343:454:7", "statements": [ { "nodeType": "YulAssignment", "src": "9353:27:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9365:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9376:3:7", "type": "", "value": "160" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9361:3:7" }, "nodeType": "YulFunctionCall", "src": "9361:19:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "9353:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "9434:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9447:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9458:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9443:3:7" }, "nodeType": "YulFunctionCall", "src": "9443:17:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "9390:43:7" }, "nodeType": "YulFunctionCall", "src": "9390:71:7" }, "nodeType": "YulExpressionStatement", "src": "9390:71:7" }, { "expression": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "9515:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9528:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9539:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9524:3:7" }, "nodeType": "YulFunctionCall", "src": "9524:18:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "9471:43:7" }, "nodeType": "YulFunctionCall", "src": "9471:72:7" }, "nodeType": "YulExpressionStatement", "src": "9471:72:7" }, { "expression": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", "src": "9597:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9610:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9621:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9606:3:7" }, "nodeType": "YulFunctionCall", "src": "9606:18:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "9553:43:7" }, "nodeType": "YulFunctionCall", "src": "9553:72:7" }, "nodeType": "YulExpressionStatement", "src": "9553:72:7" }, { "expression": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", "src": "9679:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9692:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9703:2:7", "type": "", "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9688:3:7" }, "nodeType": "YulFunctionCall", "src": "9688:18:7" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "9635:43:7" }, "nodeType": "YulFunctionCall", "src": "9635:72:7" }, "nodeType": "YulExpressionStatement", "src": "9635:72:7" }, { "expression": { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", "src": "9761:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9774:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9785:3:7", "type": "", "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9770:3:7" }, "nodeType": "YulFunctionCall", "src": "9770:19:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "9717:43:7" }, "nodeType": "YulFunctionCall", "src": "9717:73:7" }, "nodeType": "YulExpressionStatement", "src": "9717:73:7" } ] }, "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "9283:9:7", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", "src": "9295:6:7", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", "src": "9303:6:7", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", "src": "9311:6:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "9319:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "9327:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "9338:4:7", "type": "" } ], "src": "9133:664:7" }, { "body": { "nodeType": "YulBlock", "src": "9981:367:7", "statements": [ { "nodeType": "YulAssignment", "src": "9991:27:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10003:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10014:3:7", "type": "", "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9999:3:7" }, "nodeType": "YulFunctionCall", "src": "9999:19:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "9991:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "10072:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10085:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10096:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10081:3:7" }, "nodeType": "YulFunctionCall", "src": "10081:17:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "10028:43:7" }, "nodeType": "YulFunctionCall", "src": "10028:71:7" }, "nodeType": "YulExpressionStatement", "src": "10028:71:7" }, { "expression": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "10149:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10162:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10173:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10158:3:7" }, "nodeType": "YulFunctionCall", "src": "10158:18:7" } ], "functionName": { "name": "abi_encode_t_uint8_to_t_uint8_fromStack", "nodeType": "YulIdentifier", "src": "10109:39:7" }, "nodeType": "YulFunctionCall", "src": "10109:68:7" }, "nodeType": "YulExpressionStatement", "src": "10109:68:7" }, { "expression": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", "src": "10231:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10244:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10255:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10240:3:7" }, "nodeType": "YulFunctionCall", "src": "10240:18:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "10187:43:7" }, "nodeType": "YulFunctionCall", "src": "10187:72:7" }, "nodeType": "YulExpressionStatement", "src": "10187:72:7" }, { "expression": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", "src": "10313:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10326:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10337:2:7", "type": "", "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10322:3:7" }, "nodeType": "YulFunctionCall", "src": "10322:18:7" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", "src": "10269:43:7" }, "nodeType": "YulFunctionCall", "src": "10269:72:7" }, "nodeType": "YulExpressionStatement", "src": "10269:72:7" } ] }, "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "9929:9:7", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", "src": "9941:6:7", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", "src": "9949:6:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "9957:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "9965:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "9976:4:7", "type": "" } ], "src": "9803:545:7" }, { "body": { "nodeType": "YulBlock", "src": "10525:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "10535:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10547:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10558:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10543:3:7" }, "nodeType": "YulFunctionCall", "src": "10543:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10535:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10582:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10593:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10578:3:7" }, "nodeType": "YulFunctionCall", "src": "10578:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10601:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "10607:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "10597:3:7" }, "nodeType": "YulFunctionCall", "src": "10597:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "10571:6:7" }, "nodeType": "YulFunctionCall", "src": "10571:47:7" }, "nodeType": "YulExpressionStatement", "src": "10571:47:7" }, { "nodeType": "YulAssignment", "src": "10627:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10761:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "10635:124:7" }, "nodeType": "YulFunctionCall", "src": "10635:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10627:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "10505:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "10520:4:7", "type": "" } ], "src": "10354:419:7" }, { "body": { "nodeType": "YulBlock", "src": "10950:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "10960:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10972:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10983:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10968:3:7" }, "nodeType": "YulFunctionCall", "src": "10968:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10960:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "11007:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "11018:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "11003:3:7" }, "nodeType": "YulFunctionCall", "src": "11003:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11026:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "11032:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "11022:3:7" }, "nodeType": "YulFunctionCall", "src": "11022:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "10996:6:7" }, "nodeType": "YulFunctionCall", "src": "10996:47:7" }, "nodeType": "YulExpressionStatement", "src": "10996:47:7" }, { "nodeType": "YulAssignment", "src": "11052:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11186:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "11060:124:7" }, "nodeType": "YulFunctionCall", "src": "11060:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11052:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "10930:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "10945:4:7", "type": "" } ], "src": "10779:419:7" }, { "body": { "nodeType": "YulBlock", "src": "11375:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "11385:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "11397:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "11408:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "11393:3:7" }, "nodeType": "YulFunctionCall", "src": "11393:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11385:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "11432:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "11443:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "11428:3:7" }, "nodeType": "YulFunctionCall", "src": "11428:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11451:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "11457:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "11447:3:7" }, "nodeType": "YulFunctionCall", "src": "11447:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "11421:6:7" }, "nodeType": "YulFunctionCall", "src": "11421:47:7" }, "nodeType": "YulExpressionStatement", "src": "11421:47:7" }, { "nodeType": "YulAssignment", "src": "11477:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11611:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "11485:124:7" }, "nodeType": "YulFunctionCall", "src": "11485:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11477:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "11355:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "11370:4:7", "type": "" } ], "src": "11204:419:7" }, { "body": { "nodeType": "YulBlock", "src": "11800:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "11810:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "11822:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "11833:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "11818:3:7" }, "nodeType": "YulFunctionCall", "src": "11818:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11810:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "11857:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "11868:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "11853:3:7" }, "nodeType": "YulFunctionCall", "src": "11853:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11876:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "11882:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "11872:3:7" }, "nodeType": "YulFunctionCall", "src": "11872:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "11846:6:7" }, "nodeType": "YulFunctionCall", "src": "11846:47:7" }, "nodeType": "YulExpressionStatement", "src": "11846:47:7" }, { "nodeType": "YulAssignment", "src": "11902:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "12036:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "11910:124:7" }, "nodeType": "YulFunctionCall", "src": "11910:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "11902:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "11780:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "11795:4:7", "type": "" } ], "src": "11629:419:7" }, { "body": { "nodeType": "YulBlock", "src": "12225:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "12235:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "12247:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "12258:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "12243:3:7" }, "nodeType": "YulFunctionCall", "src": "12243:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "12235:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "12282:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "12293:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "12278:3:7" }, "nodeType": "YulFunctionCall", "src": "12278:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "12301:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "12307:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "12297:3:7" }, "nodeType": "YulFunctionCall", "src": "12297:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "12271:6:7" }, "nodeType": "YulFunctionCall", "src": "12271:47:7" }, "nodeType": "YulExpressionStatement", "src": "12271:47:7" }, { "nodeType": "YulAssignment", "src": "12327:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "12461:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "12335:124:7" }, "nodeType": "YulFunctionCall", "src": "12335:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "12327:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "12205:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "12220:4:7", "type": "" } ], "src": "12054:419:7" }, { "body": { "nodeType": "YulBlock", "src": "12577:124:7", "statements": [ { "nodeType": "YulAssignment", "src": "12587:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "12599:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "12610:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "12595:3:7" }, "nodeType": "YulFunctionCall", "src": "12595:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "12587:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "12667:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "12680:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "12691:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "12676:3:7" }, "nodeType": "YulFunctionCall", "src": "12676:17:7" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "12623:43:7" }, "nodeType": "YulFunctionCall", "src": "12623:71:7" }, "nodeType": "YulExpressionStatement", "src": "12623:71:7" } ] }, "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "12549:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "12561:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "12572:4:7", "type": "" } ], "src": "12479:222:7" }, { "body": { "nodeType": "YulBlock", "src": "12797:433:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "12807:51:7", "value": { "arguments": [ { "name": "ptr_to_tail", "nodeType": "YulIdentifier", "src": "12846:11:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "12833:12:7" }, "nodeType": "YulFunctionCall", "src": "12833:25:7" }, "variables": [ { "name": "rel_offset_of_tail", "nodeType": "YulTypedName", "src": "12811:18:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "12952:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "12961:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "12964:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "12954:6:7" }, "nodeType": "YulFunctionCall", "src": "12954:12:7" }, "nodeType": "YulExpressionStatement", "src": "12954:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "rel_offset_of_tail", "nodeType": "YulIdentifier", "src": "12881:18:7" }, { "arguments": [ { "arguments": [ { "arguments": [], "functionName": { "name": "calldatasize", "nodeType": "YulIdentifier", "src": "12909:12:7" }, "nodeType": "YulFunctionCall", "src": "12909:14:7" }, { "name": "base_ref", "nodeType": "YulIdentifier", "src": "12925:8:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "12905:3:7" }, "nodeType": "YulFunctionCall", "src": "12905:29:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "12940:4:7", "type": "", "value": "0x20" }, { "kind": "number", "nodeType": "YulLiteral", "src": "12946:1:7", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "12936:3:7" }, "nodeType": "YulFunctionCall", "src": "12936:12:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "12901:3:7" }, "nodeType": "YulFunctionCall", "src": "12901:48:7" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "12877:3:7" }, "nodeType": "YulFunctionCall", "src": "12877:73:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "12870:6:7" }, "nodeType": "YulFunctionCall", "src": "12870:81:7" }, "nodeType": "YulIf", "src": "12867:2:7" }, { "nodeType": "YulAssignment", "src": "12977:41:7", "value": { "arguments": [ { "name": "base_ref", "nodeType": "YulIdentifier", "src": "12989:8:7" }, { "name": "rel_offset_of_tail", "nodeType": "YulIdentifier", "src": "12999:18:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "12985:3:7" }, "nodeType": "YulFunctionCall", "src": "12985:33:7" }, "variableNames": [ { "name": "addr", "nodeType": "YulIdentifier", "src": "12977:4:7" } ] }, { "nodeType": "YulAssignment", "src": "13028:28:7", "value": { "arguments": [ { "name": "addr", "nodeType": "YulIdentifier", "src": "13051:4:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "13038:12:7" }, "nodeType": "YulFunctionCall", "src": "13038:18:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "13028:6:7" } ] }, { "body": { "nodeType": "YulBlock", "src": "13099:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "13108:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "13111:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "13101:6:7" }, "nodeType": "YulFunctionCall", "src": "13101:12:7" }, "nodeType": "YulExpressionStatement", "src": "13101:12:7" } ] }, "condition": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "13071:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "13079:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "13068:2:7" }, "nodeType": "YulFunctionCall", "src": "13068:30:7" }, "nodeType": "YulIf", "src": "13065:2:7" }, { "nodeType": "YulAssignment", "src": "13124:21:7", "value": { "arguments": [ { "name": "addr", "nodeType": "YulIdentifier", "src": "13136:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "13142:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "13132:3:7" }, "nodeType": "YulFunctionCall", "src": "13132:13:7" }, "variableNames": [ { "name": "addr", "nodeType": "YulIdentifier", "src": "13124:4:7" } ] }, { "body": { "nodeType": "YulBlock", "src": "13207:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "13216:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "13219:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "13209:6:7" }, "nodeType": "YulFunctionCall", "src": "13209:12:7" }, "nodeType": "YulExpressionStatement", "src": "13209:12:7" } ] }, "condition": { "arguments": [ { "name": "addr", "nodeType": "YulIdentifier", "src": "13161:4:7" }, { "arguments": [ { "arguments": [], "functionName": { "name": "calldatasize", "nodeType": "YulIdentifier", "src": "13171:12:7" }, "nodeType": "YulFunctionCall", "src": "13171:14:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "13191:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "13199:4:7", "type": "", "value": "0x01" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", "src": "13187:3:7" }, "nodeType": "YulFunctionCall", "src": "13187:17:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "13167:3:7" }, "nodeType": "YulFunctionCall", "src": "13167:38:7" } ], "functionName": { "name": "sgt", "nodeType": "YulIdentifier", "src": "13157:3:7" }, "nodeType": "YulFunctionCall", "src": "13157:49:7" }, "nodeType": "YulIf", "src": "13154:2:7" } ] }, "name": "access_calldata_tail_t_bytes_calldata_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "base_ref", "nodeType": "YulTypedName", "src": "12758:8:7", "type": "" }, { "name": "ptr_to_tail", "nodeType": "YulTypedName", "src": "12768:11:7", "type": "" } ], "returnVariables": [ { "name": "addr", "nodeType": "YulTypedName", "src": "12784:4:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "12790:6:7", "type": "" } ], "src": "12707:523:7" }, { "body": { "nodeType": "YulBlock", "src": "13294:40:7", "statements": [ { "nodeType": "YulAssignment", "src": "13305:22:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "13321:5:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "13315:5:7" }, "nodeType": "YulFunctionCall", "src": "13315:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "13305:6:7" } ] } ] }, "name": "array_length_t_bytes_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "13277:5:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "13287:6:7", "type": "" } ], "src": "13236:98:7" }, { "body": { "nodeType": "YulBlock", "src": "13435:73:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "13452:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "13457:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "13445:6:7" }, "nodeType": "YulFunctionCall", "src": "13445:19:7" }, "nodeType": "YulExpressionStatement", "src": "13445:19:7" }, { "nodeType": "YulAssignment", "src": "13473:29:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "13492:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "13497:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "13488:3:7" }, "nodeType": "YulFunctionCall", "src": "13488:14:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "13473:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "13407:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "13412:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "13423:11:7", "type": "" } ], "src": "13340:168:7" }, { "body": { "nodeType": "YulBlock", "src": "13627:34:7", "statements": [ { "nodeType": "YulAssignment", "src": "13637:18:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "13652:3:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "13637:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "13599:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "13604:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "13615:11:7", "type": "" } ], "src": "13514:147:7" }, { "body": { "nodeType": "YulBlock", "src": "13763:73:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "13780:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "13785:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "13773:6:7" }, "nodeType": "YulFunctionCall", "src": "13773:19:7" }, "nodeType": "YulExpressionStatement", "src": "13773:19:7" }, { "nodeType": "YulAssignment", "src": "13801:29:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "13820:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "13825:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "13816:3:7" }, "nodeType": "YulFunctionCall", "src": "13816:14:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "13801:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "13735:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "13740:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "13751:11:7", "type": "" } ], "src": "13667:169:7" }, { "body": { "nodeType": "YulBlock", "src": "13956:34:7", "statements": [ { "nodeType": "YulAssignment", "src": "13966:18:7", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "13981:3:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "13966:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "13928:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "13933:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "13944:11:7", "type": "" } ], "src": "13842:148:7" }, { "body": { "nodeType": "YulBlock", "src": "14040:261:7", "statements": [ { "nodeType": "YulAssignment", "src": "14050:25:7", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "14073:1:7" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "14055:17:7" }, "nodeType": "YulFunctionCall", "src": "14055:20:7" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", "src": "14050:1:7" } ] }, { "nodeType": "YulAssignment", "src": "14084:25:7", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", "src": "14107:1:7" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "14089:17:7" }, "nodeType": "YulFunctionCall", "src": "14089:20:7" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", "src": "14084:1:7" } ] }, { "body": { "nodeType": "YulBlock", "src": "14247:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", "src": "14249:16:7" }, "nodeType": "YulFunctionCall", "src": "14249:18:7" }, "nodeType": "YulExpressionStatement", "src": "14249:18:7" } ] }, "condition": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "14168:1:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "14175:66:7", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, { "name": "y", "nodeType": "YulIdentifier", "src": "14243:1:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "14171:3:7" }, "nodeType": "YulFunctionCall", "src": "14171:74:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "14165:2:7" }, "nodeType": "YulFunctionCall", "src": "14165:81:7" }, "nodeType": "YulIf", "src": "14162:2:7" }, { "nodeType": "YulAssignment", "src": "14279:16:7", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "14290:1:7" }, { "name": "y", "nodeType": "YulIdentifier", "src": "14293:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "14286:3:7" }, "nodeType": "YulFunctionCall", "src": "14286:9:7" }, "variableNames": [ { "name": "sum", "nodeType": "YulIdentifier", "src": "14279:3:7" } ] } ] }, "name": "checked_add_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "x", "nodeType": "YulTypedName", "src": "14027:1:7", "type": "" }, { "name": "y", "nodeType": "YulTypedName", "src": "14030:1:7", "type": "" } ], "returnVariables": [ { "name": "sum", "nodeType": "YulTypedName", "src": "14036:3:7", "type": "" } ], "src": "13996:305:7" }, { "body": { "nodeType": "YulBlock", "src": "14349:143:7", "statements": [ { "nodeType": "YulAssignment", "src": "14359:25:7", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "14382:1:7" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "14364:17:7" }, "nodeType": "YulFunctionCall", "src": "14364:20:7" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", "src": "14359:1:7" } ] }, { "nodeType": "YulAssignment", "src": "14393:25:7", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", "src": "14416:1:7" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "14398:17:7" }, "nodeType": "YulFunctionCall", "src": "14398:20:7" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", "src": "14393:1:7" } ] }, { "body": { "nodeType": "YulBlock", "src": "14440:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x12", "nodeType": "YulIdentifier", "src": "14442:16:7" }, "nodeType": "YulFunctionCall", "src": "14442:18:7" }, "nodeType": "YulExpressionStatement", "src": "14442:18:7" } ] }, "condition": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", "src": "14437:1:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "14430:6:7" }, "nodeType": "YulFunctionCall", "src": "14430:9:7" }, "nodeType": "YulIf", "src": "14427:2:7" }, { "nodeType": "YulAssignment", "src": "14472:14:7", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "14481:1:7" }, { "name": "y", "nodeType": "YulIdentifier", "src": "14484:1:7" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", "src": "14477:3:7" }, "nodeType": "YulFunctionCall", "src": "14477:9:7" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", "src": "14472:1:7" } ] } ] }, "name": "checked_div_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "x", "nodeType": "YulTypedName", "src": "14338:1:7", "type": "" }, { "name": "y", "nodeType": "YulTypedName", "src": "14341:1:7", "type": "" } ], "returnVariables": [ { "name": "r", "nodeType": "YulTypedName", "src": "14347:1:7", "type": "" } ], "src": "14307:185:7" }, { "body": { "nodeType": "YulBlock", "src": "14543:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "14553:35:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "14582:5:7" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "14564:17:7" }, "nodeType": "YulFunctionCall", "src": "14564:24:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "14553:7:7" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "14525:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "14535:7:7", "type": "" } ], "src": "14498:96:7" }, { "body": { "nodeType": "YulBlock", "src": "14642:48:7", "statements": [ { "nodeType": "YulAssignment", "src": "14652:32:7", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "14677:5:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "14670:6:7" }, "nodeType": "YulFunctionCall", "src": "14670:13:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "14663:6:7" }, "nodeType": "YulFunctionCall", "src": "14663:21:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "14652:7:7" } ] } ] }, "name": "cleanup_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "14624:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "14634:7:7", "type": "" } ], "src": "14600:90:7" }, { "body": { "nodeType": "YulBlock", "src": "14741:32:7", "statements": [ { "nodeType": "YulAssignment", "src": "14751:16:7", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "14762:5:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "14751:7:7" } ] } ] }, "name": "cleanup_t_bytes32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "14723:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "14733:7:7", "type": "" } ], "src": "14696:77:7" }, { "body": { "nodeType": "YulBlock", "src": "14824:81:7", "statements": [ { "nodeType": "YulAssignment", "src": "14834:65:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "14849:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "14856:42:7", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "14845:3:7" }, "nodeType": "YulFunctionCall", "src": "14845:54:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "14834:7:7" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "14806:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "14816:7:7", "type": "" } ], "src": "14779:126:7" }, { "body": { "nodeType": "YulBlock", "src": "14956:32:7", "statements": [ { "nodeType": "YulAssignment", "src": "14966:16:7", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "14977:5:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "14966:7:7" } ] } ] }, "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "14938:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "14948:7:7", "type": "" } ], "src": "14911:77:7" }, { "body": { "nodeType": "YulBlock", "src": "15037:43:7", "statements": [ { "nodeType": "YulAssignment", "src": "15047:27:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "15062:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "15069:4:7", "type": "", "value": "0xff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "15058:3:7" }, "nodeType": "YulFunctionCall", "src": "15058:16:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "15047:7:7" } ] } ] }, "name": "cleanup_t_uint8", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "15019:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "15029:7:7", "type": "" } ], "src": "14994:86:7" }, { "body": { "nodeType": "YulBlock", "src": "15137:103:7", "statements": [ { "expression": { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "15160:3:7" }, { "name": "src", "nodeType": "YulIdentifier", "src": "15165:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "15170:6:7" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", "src": "15147:12:7" }, "nodeType": "YulFunctionCall", "src": "15147:30:7" }, "nodeType": "YulExpressionStatement", "src": "15147:30:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "15218:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "15223:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "15214:3:7" }, "nodeType": "YulFunctionCall", "src": "15214:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "15232:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "15207:6:7" }, "nodeType": "YulFunctionCall", "src": "15207:27:7" }, "nodeType": "YulExpressionStatement", "src": "15207:27:7" } ] }, "name": "copy_calldata_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "15119:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "15124:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "15129:6:7", "type": "" } ], "src": "15086:154:7" }, { "body": { "nodeType": "YulBlock", "src": "15295:258:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "15305:10:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "15314:1:7", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "15309:1:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "15374:63:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "15399:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "15404:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "15395:3:7" }, "nodeType": "YulFunctionCall", "src": "15395:11:7" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "15418:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "15423:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "15414:3:7" }, "nodeType": "YulFunctionCall", "src": "15414:11:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "15408:5:7" }, "nodeType": "YulFunctionCall", "src": "15408:18:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "15388:6:7" }, "nodeType": "YulFunctionCall", "src": "15388:39:7" }, "nodeType": "YulExpressionStatement", "src": "15388:39:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "15335:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "15338:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "15332:2:7" }, "nodeType": "YulFunctionCall", "src": "15332:13:7" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "15346:19:7", "statements": [ { "nodeType": "YulAssignment", "src": "15348:15:7", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "15357:1:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "15360:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "15353:3:7" }, "nodeType": "YulFunctionCall", "src": "15353:10:7" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "15348:1:7" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "15328:3:7", "statements": [] }, "src": "15324:113:7" }, { "body": { "nodeType": "YulBlock", "src": "15471:76:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "15521:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "15526:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "15517:3:7" }, "nodeType": "YulFunctionCall", "src": "15517:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "15535:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "15510:6:7" }, "nodeType": "YulFunctionCall", "src": "15510:27:7" }, "nodeType": "YulExpressionStatement", "src": "15510:27:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "15452:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "15455:6:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "15449:2:7" }, "nodeType": "YulFunctionCall", "src": "15449:13:7" }, "nodeType": "YulIf", "src": "15446:2:7" } ] }, "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "15277:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "15282:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "15287:6:7", "type": "" } ], "src": "15246:307:7" }, { "body": { "nodeType": "YulBlock", "src": "15606:53:7", "statements": [ { "nodeType": "YulAssignment", "src": "15616:37:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "15647:5:7" } ], "functionName": { "name": "leftAlign_t_uint160", "nodeType": "YulIdentifier", "src": "15627:19:7" }, "nodeType": "YulFunctionCall", "src": "15627:26:7" }, "variableNames": [ { "name": "aligned", "nodeType": "YulIdentifier", "src": "15616:7:7" } ] } ] }, "name": "leftAlign_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "15588:5:7", "type": "" } ], "returnVariables": [ { "name": "aligned", "nodeType": "YulTypedName", "src": "15598:7:7", "type": "" } ], "src": "15559:100:7" }, { "body": { "nodeType": "YulBlock", "src": "15712:32:7", "statements": [ { "nodeType": "YulAssignment", "src": "15722:16:7", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "15733:5:7" }, "variableNames": [ { "name": "aligned", "nodeType": "YulIdentifier", "src": "15722:7:7" } ] } ] }, "name": "leftAlign_t_bytes32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "15694:5:7", "type": "" } ], "returnVariables": [ { "name": "aligned", "nodeType": "YulTypedName", "src": "15704:7:7", "type": "" } ], "src": "15665:79:7" }, { "body": { "nodeType": "YulBlock", "src": "15797:47:7", "statements": [ { "nodeType": "YulAssignment", "src": "15807:31:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "15832:5:7" } ], "functionName": { "name": "shift_left_96", "nodeType": "YulIdentifier", "src": "15818:13:7" }, "nodeType": "YulFunctionCall", "src": "15818:20:7" }, "variableNames": [ { "name": "aligned", "nodeType": "YulIdentifier", "src": "15807:7:7" } ] } ] }, "name": "leftAlign_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "15779:5:7", "type": "" } ], "returnVariables": [ { "name": "aligned", "nodeType": "YulTypedName", "src": "15789:7:7", "type": "" } ], "src": "15750:94:7" }, { "body": { "nodeType": "YulBlock", "src": "15878:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "15895:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "15898:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "15888:6:7" }, "nodeType": "YulFunctionCall", "src": "15888:88:7" }, "nodeType": "YulExpressionStatement", "src": "15888:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "15992:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "15995:4:7", "type": "", "value": "0x11" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "15985:6:7" }, "nodeType": "YulFunctionCall", "src": "15985:15:7" }, "nodeType": "YulExpressionStatement", "src": "15985:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "16016:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "16019:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "16009:6:7" }, "nodeType": "YulFunctionCall", "src": "16009:15:7" }, "nodeType": "YulExpressionStatement", "src": "16009:15:7" } ] }, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", "src": "15850:180:7" }, { "body": { "nodeType": "YulBlock", "src": "16064:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "16081:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "16084:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "16074:6:7" }, "nodeType": "YulFunctionCall", "src": "16074:88:7" }, "nodeType": "YulExpressionStatement", "src": "16074:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "16178:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "16181:4:7", "type": "", "value": "0x12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "16171:6:7" }, "nodeType": "YulFunctionCall", "src": "16171:15:7" }, "nodeType": "YulExpressionStatement", "src": "16171:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "16202:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "16205:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "16195:6:7" }, "nodeType": "YulFunctionCall", "src": "16195:15:7" }, "nodeType": "YulExpressionStatement", "src": "16195:15:7" } ] }, "name": "panic_error_0x12", "nodeType": "YulFunctionDefinition", "src": "16036:180:7" }, { "body": { "nodeType": "YulBlock", "src": "16270:54:7", "statements": [ { "nodeType": "YulAssignment", "src": "16280:38:7", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "16298:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "16305:2:7", "type": "", "value": "31" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "16294:3:7" }, "nodeType": "YulFunctionCall", "src": "16294:14:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "16314:2:7", "type": "", "value": "31" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "16310:3:7" }, "nodeType": "YulFunctionCall", "src": "16310:7:7" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "16290:3:7" }, "nodeType": "YulFunctionCall", "src": "16290:28:7" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "16280:6:7" } ] } ] }, "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "16253:5:7", "type": "" } ], "returnVariables": [ { "name": "result", "nodeType": "YulTypedName", "src": "16263:6:7", "type": "" } ], "src": "16222:102:7" }, { "body": { "nodeType": "YulBlock", "src": "16372:52:7", "statements": [ { "nodeType": "YulAssignment", "src": "16382:35:7", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "16407:2:7", "type": "", "value": "96" }, { "name": "value", "nodeType": "YulIdentifier", "src": "16411:5:7" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", "src": "16403:3:7" }, "nodeType": "YulFunctionCall", "src": "16403:14:7" }, "variableNames": [ { "name": "newValue", "nodeType": "YulIdentifier", "src": "16382:8:7" } ] } ] }, "name": "shift_left_96", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "16353:5:7", "type": "" } ], "returnVariables": [ { "name": "newValue", "nodeType": "YulTypedName", "src": "16363:8:7", "type": "" } ], "src": "16330:94:7" }, { "body": { "nodeType": "YulBlock", "src": "16473:79:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "16530:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "16539:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "16542:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "16532:6:7" }, "nodeType": "YulFunctionCall", "src": "16532:12:7" }, "nodeType": "YulExpressionStatement", "src": "16532:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "16496:5:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "16521:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "16503:17:7" }, "nodeType": "YulFunctionCall", "src": "16503:24:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "16493:2:7" }, "nodeType": "YulFunctionCall", "src": "16493:35:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "16486:6:7" }, "nodeType": "YulFunctionCall", "src": "16486:43:7" }, "nodeType": "YulIf", "src": "16483:2:7" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "16466:5:7", "type": "" } ], "src": "16430:122:7" } ] }, "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\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(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert(0, 0) }\n }\n\n // struct MinimalForwarder.ForwardRequest\n function abi_decode_t_struct$_ForwardRequest_$504_calldata_ptr(offset, end) -> value {\n if slt(sub(end, offset), 192) { revert(0, 0) }\n value := offset\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ForwardRequest_$504_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_struct$_ForwardRequest_$504_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(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_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(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_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(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 // 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(start, pos, length)\n end := add(pos, length)\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(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\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(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n\n mstore(add(pos, 0), \"ECDSA: invalid signature\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n\n mstore(add(pos, 0), \"MinimalForwarder: signature does\")\n\n mstore(add(pos, 32), \" not match request\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n\n mstore(add(pos, 0), \"ECDSA: invalid signature length\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n\n mstore(add(pos, 0), 0x1901000000000000000000000000000000000000000000000000000000000000)\n\n end := add(pos, 2)\n }\n\n function abi_encode_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n\n mstore(add(pos, 0), \"ECDSA: invalid signature 's' val\")\n\n mstore(add(pos, 32), \"ue\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n\n mstore(add(pos, 0), \"ECDSA: invalid signature 'v' val\")\n\n mstore(add(pos, 32), \"ue\")\n\n end := add(pos, 64)\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_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1, pos)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\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_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed(headStart , value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 224)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value6, add(headStart, 192))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_address_to_t_address_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4_to_t_string_memory_ptr_fromStack( tail)\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 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(0, 0) }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert(0, 0) }\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 array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\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 array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := 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\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\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 cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n", "id": 7, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": { "271": [ { "length": 32, "start": 1432 } ], "273": [ { "length": 32, "start": 1392 } ], "275": [ { "length": 32, "start": 1508 } ], "277": [ { "length": 32, "start": 1541 } ], "279": [ { "length": 32, "start": 1475 } ] }, "linkReferences": {}, "object": "6080604052600436106100345760003560e01c80632d0335ab1461003957806347153f8214610076578063bf5d3bdb146100a7575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b919061086e565b6100e4565b60405161006d9190610e84565b60405180910390f35b610090600480360381019061008b9190610897565b61012c565b60405161009e929190610cad565b60405180910390f35b3480156100b357600080fd5b506100ce60048036038101906100c99190610897565b610304565b6040516100db9190610c92565b60405180910390f35b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000606061013b858585610304565b61017a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017190610e04565b60405180910390fd5b6001856080013561018b9190610f39565b6000808760000160208101906101a1919061086e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000808660200160208101906101f5919061086e565b73ffffffffffffffffffffffffffffffffffffffff1687606001358860400135898060a001906102259190610e9f565b8b6000016020810190610238919061086e565b60405160200161024a93929190610c1a565b6040516020818303038152906040526040516102669190610c44565b600060405180830381858888f193505050503d80600081146102a4576040519150601f19603f3d011682016040523d82523d6000602084013e6102a9565b606091505b5091509150603f87606001356102bf9190610f8f565b5a116102f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8181935093505050935093915050565b60008061040d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506103ff7fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e48886000016020810190610386919061086e565b896020016020810190610399919061086e565b8a604001358b606001358c608001358d8060a001906103b89190610e9f565b6040516103c6929190610c01565b60405180910390206040516020016103e49796959493929190610cdd565b604051602081830303815290604052805190602001206104b9565b6104f290919063ffffffff16565b9050846080013560008087600001602081019061042a919061086e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156104af5750846000016020810190610480919061086e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b9150509392505050565b60006104c361056c565b826040516020016104d5929190610c5b565b604051602081830303815290604052805190602001209050919050565b60006041825114610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052f90610e24565b60405180910390fd5b60008060006020850151925060408501519150606085015160001a90506105618682858561062f565b935050505092915050565b60007f00000000000000000000000000000000000000000000000000000000000000004614156105be577f0000000000000000000000000000000000000000000000000000000000000000905061062c565b6106297f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006107ba565b90505b90565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115610697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068e90610e44565b60405180910390fd5b601b8460ff1614806106ac5750601c8460ff16145b6106eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e290610e64565b60405180910390fd5b6000600186868686604051600081526020016040526040516107109493929190610d9f565b6020604051602081039080840390855afa158015610732573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a590610de4565b60405180910390fd5b80915050949350505050565b600083838346306040516020016107d5959493929190610d4c565b6040516020818303038152906040528051906020012090509392505050565b6000813590506108038161110b565b92915050565b60008083601f84011261081b57600080fd5b8235905067ffffffffffffffff81111561083457600080fd5b60208301915083600182028301111561084c57600080fd5b9250929050565b600060c0828403121561086557600080fd5b81905092915050565b60006020828403121561088057600080fd5b600061088e848285016107f4565b91505092915050565b6000806000604084860312156108ac57600080fd5b600084013567ffffffffffffffff8111156108c657600080fd5b6108d286828701610853565b935050602084013567ffffffffffffffff8111156108ef57600080fd5b6108fb86828701610809565b92509250509250925092565b61091081610fc0565b82525050565b61092761092282610fc0565b611061565b82525050565b61093681610fd2565b82525050565b61094581610fde565b82525050565b61095c61095782610fde565b611073565b82525050565b600061096e8385610f12565b935061097b83858461101f565b82840190509392505050565b600061099282610ef6565b61099c8185610f01565b93506109ac81856020860161102e565b6109b5816110ed565b840191505092915050565b60006109cb82610ef6565b6109d58185610f12565b93506109e581856020860161102e565b80840191505092915050565b60006109fe601883610f1d565b91507f45434453413a20696e76616c6964207369676e617475726500000000000000006000830152602082019050919050565b6000610a3e603283610f1d565b91507f4d696e696d616c466f727761726465723a207369676e617475726520646f657360008301527f206e6f74206d61746368207265717565737400000000000000000000000000006020830152604082019050919050565b6000610aa4601f83610f1d565b91507f45434453413a20696e76616c6964207369676e6174757265206c656e677468006000830152602082019050919050565b6000610ae4600283610f2e565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000610b24602283610f1d565b91507f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008301527f75650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610b8a602283610f1d565b91507f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008301527f75650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610bec81611008565b82525050565b610bfb81611012565b82525050565b6000610c0e828486610962565b91508190509392505050565b6000610c27828587610962565b9150610c338284610916565b601482019150819050949350505050565b6000610c5082846109c0565b915081905092915050565b6000610c6682610ad7565b9150610c72828561094b565b602082019150610c82828461094b565b6020820191508190509392505050565b6000602082019050610ca7600083018461092d565b92915050565b6000604082019050610cc2600083018561092d565b8181036020830152610cd48184610987565b90509392505050565b600060e082019050610cf2600083018a61093c565b610cff6020830189610907565b610d0c6040830188610907565b610d196060830187610be3565b610d266080830186610be3565b610d3360a0830185610be3565b610d4060c083018461093c565b98975050505050505050565b600060a082019050610d61600083018861093c565b610d6e602083018761093c565b610d7b604083018661093c565b610d886060830185610be3565b610d956080830184610907565b9695505050505050565b6000608082019050610db4600083018761093c565b610dc16020830186610bf2565b610dce604083018561093c565b610ddb606083018461093c565b95945050505050565b60006020820190508181036000830152610dfd816109f1565b9050919050565b60006020820190508181036000830152610e1d81610a31565b9050919050565b60006020820190508181036000830152610e3d81610a97565b9050919050565b60006020820190508181036000830152610e5d81610b17565b9050919050565b60006020820190508181036000830152610e7d81610b7d565b9050919050565b6000602082019050610e996000830184610be3565b92915050565b60008083356001602003843603038112610eb857600080fd5b80840192508235915067ffffffffffffffff821115610ed657600080fd5b602083019250600182023603831315610eee57600080fd5b509250929050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000610f4482611008565b9150610f4f83611008565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610f8457610f8361108f565b5b828201905092915050565b6000610f9a82611008565b9150610fa583611008565b925082610fb557610fb46110be565b5b828204905092915050565b6000610fcb82610fe8565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561104c578082015181840152602081019050611031565b8381111561105b576000848401525b50505050565b600061106c8261107d565b9050919050565b6000819050919050565b6000611088826110fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b61111481610fc0565b811461111f57600080fd5b5056fea264697066735822122047e3a0546deb09241119a7e4f42f75730fd5cc86609f7079a8e341297850ac0064736f6c63430008000033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x39 JUMPI DUP1 PUSH4 0x47153F82 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xBF5D3BDB EQ PUSH2 0xA7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x90 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x12C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9E SWAP3 SWAP2 SWAP1 PUSH2 0xCAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC9 SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x304 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDB SWAP2 SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH2 0x13B DUP6 DUP6 DUP6 PUSH2 0x304 JUMP JUMPDEST PUSH2 0x17A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x171 SWAP1 PUSH2 0xE04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x18B SWAP2 SWAP1 PUSH2 0xF39 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP8 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1A1 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP7 PUSH1 0x20 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F5 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH1 0x60 ADD CALLDATALOAD DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP10 DUP1 PUSH1 0xA0 ADD SWAP1 PUSH2 0x225 SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST DUP12 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x24A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x266 SWAP2 SWAP1 PUSH2 0xC44 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2A4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2A9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x3F DUP8 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x2BF SWAP2 SWAP1 PUSH2 0xF8F JUMP JUMPDEST GAS GT PUSH2 0x2F4 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x40D 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 PUSH1 0x0 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 0x3FF PUSH32 0xDD8F4B70B0F4393E889BD39128A30628A78B61816A9EB8199759E7A349657E48 DUP9 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x386 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP10 PUSH1 0x20 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x399 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP11 PUSH1 0x40 ADD CALLDATALOAD DUP12 PUSH1 0x60 ADD CALLDATALOAD DUP13 PUSH1 0x80 ADD CALLDATALOAD DUP14 DUP1 PUSH1 0xA0 ADD SWAP1 PUSH2 0x3B8 SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C6 SWAP3 SWAP2 SWAP1 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3E4 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x4B9 JUMP JUMPDEST PUSH2 0x4F2 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x80 ADD CALLDATALOAD PUSH1 0x0 DUP1 DUP8 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x42A SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ DUP1 ISZERO PUSH2 0x4AF JUMPI POP DUP5 PUSH1 0x0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x480 SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C3 PUSH2 0x56C JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4D5 SWAP3 SWAP2 SWAP1 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x41 DUP3 MLOAD EQ PUSH2 0x538 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x52F SWAP1 PUSH2 0xE24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH2 0x561 DUP7 DUP3 DUP6 DUP6 PUSH2 0x62F JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 CHAINID EQ ISZERO PUSH2 0x5BE JUMPI PUSH32 0x0 SWAP1 POP PUSH2 0x62C JUMP JUMPDEST PUSH2 0x629 PUSH32 0x0 PUSH32 0x0 PUSH32 0x0 PUSH2 0x7BA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP3 PUSH1 0x0 SHR GT ISZERO PUSH2 0x697 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x68E SWAP1 PUSH2 0xE44 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1B DUP5 PUSH1 0xFF AND EQ DUP1 PUSH2 0x6AC JUMPI POP PUSH1 0x1C DUP5 PUSH1 0xFF AND EQ JUMPDEST PUSH2 0x6EB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6E2 SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x710 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x732 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x7AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A5 SWAP1 PUSH2 0xDE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP4 CHAINID ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7D5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x803 DUP2 PUSH2 0x110B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x81B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x84C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x865 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x88E DUP5 DUP3 DUP6 ADD PUSH2 0x7F4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8D2 DUP7 DUP3 DUP8 ADD PUSH2 0x853 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8FB DUP7 DUP3 DUP8 ADD PUSH2 0x809 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x910 DUP2 PUSH2 0xFC0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x927 PUSH2 0x922 DUP3 PUSH2 0xFC0 JUMP JUMPDEST PUSH2 0x1061 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x936 DUP2 PUSH2 0xFD2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x945 DUP2 PUSH2 0xFDE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x95C PUSH2 0x957 DUP3 PUSH2 0xFDE JUMP JUMPDEST PUSH2 0x1073 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x96E DUP4 DUP6 PUSH2 0xF12 JUMP JUMPDEST SWAP4 POP PUSH2 0x97B DUP4 DUP6 DUP5 PUSH2 0x101F JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x992 DUP3 PUSH2 0xEF6 JUMP JUMPDEST PUSH2 0x99C DUP2 DUP6 PUSH2 0xF01 JUMP JUMPDEST SWAP4 POP PUSH2 0x9AC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x102E JUMP JUMPDEST PUSH2 0x9B5 DUP2 PUSH2 0x10ED JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CB DUP3 PUSH2 0xEF6 JUMP JUMPDEST PUSH2 0x9D5 DUP2 DUP6 PUSH2 0xF12 JUMP JUMPDEST SWAP4 POP PUSH2 0x9E5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x102E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9FE PUSH1 0x18 DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA3E PUSH1 0x32 DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x4D696E696D616C466F727761726465723A207369676E617475726520646F6573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206E6F74206D6174636820726571756573740000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAA4 PUSH1 0x1F DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE4 PUSH1 0x2 DUP4 PUSH2 0xF2E JUMP JUMPDEST SWAP2 POP PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB24 PUSH1 0x22 DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB8A PUSH1 0x22 DUP4 PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBEC DUP2 PUSH2 0x1008 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xBFB DUP2 PUSH2 0x1012 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC0E DUP3 DUP5 DUP7 PUSH2 0x962 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC27 DUP3 DUP6 DUP8 PUSH2 0x962 JUMP JUMPDEST SWAP2 POP PUSH2 0xC33 DUP3 DUP5 PUSH2 0x916 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC50 DUP3 DUP5 PUSH2 0x9C0 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC66 DUP3 PUSH2 0xAD7 JUMP JUMPDEST SWAP2 POP PUSH2 0xC72 DUP3 DUP6 PUSH2 0x94B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xC82 DUP3 DUP5 PUSH2 0x94B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x92D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xCC2 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x92D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xCD4 DUP2 DUP5 PUSH2 0x987 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 ADD SWAP1 POP PUSH2 0xCF2 PUSH1 0x0 DUP4 ADD DUP11 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xCFF PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x907 JUMP JUMPDEST PUSH2 0xD0C PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x907 JUMP JUMPDEST PUSH2 0xD19 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0xD26 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0xD33 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0xD40 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x93C JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0xD61 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xD6E PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xD7B PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xD88 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0xD95 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x907 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xDB4 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xDC1 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0xDCE PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x93C JUMP JUMPDEST PUSH2 0xDDB PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x93C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDFD DUP2 PUSH2 0x9F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE1D DUP2 PUSH2 0xA31 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE3D DUP2 PUSH2 0xA97 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE5D DUP2 PUSH2 0xB17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE7D DUP2 PUSH2 0xB7D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE99 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xBE3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xEB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xED6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0xEEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF44 DUP3 PUSH2 0x1008 JUMP JUMPDEST SWAP2 POP PUSH2 0xF4F DUP4 PUSH2 0x1008 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xF84 JUMPI PUSH2 0xF83 PUSH2 0x108F JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF9A DUP3 PUSH2 0x1008 JUMP JUMPDEST SWAP2 POP PUSH2 0xFA5 DUP4 PUSH2 0x1008 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xFB5 JUMPI PUSH2 0xFB4 PUSH2 0x10BE JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFCB DUP3 PUSH2 0xFE8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x104C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1031 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x105B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x106C DUP3 PUSH2 0x107D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1088 DUP3 PUSH2 0x10FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1114 DUP2 PUSH2 0xFC0 JUMP JUMPDEST DUP2 EQ PUSH2 0x111F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0xE3 LOG0 SLOAD PUSH14 0xEB09241119A7E4F42F75730FD5CC DUP7 PUSH1 0x9F PUSH17 0x79A8E341297850AC0064736F6C63430008 STOP STOP CALLER ", "sourceMap": "169:1642:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1202:607;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;763:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;658:99;711:7;737;:13;745:4;737:13;;;;;;;;;;;;;;;;730:20;;658:99;;;:::o;1202:607::-;1298:4;1304:12;1336:22;1343:3;1348:9;;1336:6;:22::i;:::-;1328:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;1455:1;1443:3;:9;;;:13;;;;:::i;:::-;1423:7;:17;1431:3;:8;;;;;;;;;;:::i;:::-;1423:17;;;;;;;;;;;;;;;:33;;;;1527:12;1541:23;1568:3;:6;;;;;;;;;;:::i;:::-;:11;;1585:3;:7;;;1601:3;:9;;;1629:3;:8;;;;;;;;:::i;:::-;1639:3;:8;;;;;;;;;;:::i;:::-;1612:36;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1568:81;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1526:123;;;;1760:2;1750:3;:7;;;:12;;;;:::i;:::-;1738:9;:24;1731:32;;;;;;;;;;;;1782:7;1791:10;1774:28;;;;;;1202:607;;;;;;:::o;763:433::-;855:4;871:14;888:232;1110:9;;888:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:213;441:103;961:3;:8;;;;;;;;;;:::i;:::-;983:3;:6;;;;;;;;;;:::i;:::-;1003:3;:9;;;1026:3;:7;;;1047:3;:9;;;1080:3;:8;;;;;;;;:::i;:::-;1070:19;;;;;;;:::i;:::-;;;;;;;;915:184;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;905:195;;;;;;888:16;:213::i;:::-;:221;;:232;;;;:::i;:::-;871:249;;1158:3;:9;;;1137:7;:17;1145:3;:8;;;;;;;;;;:::i;:::-;1137:17;;;;;;;;;;;;;;;;:30;:52;;;;;1181:3;:8;;;;;;;;;;:::i;:::-;1171:18;;:6;:18;;;1137:52;1130:59;;;763:433;;;;;:::o;4177:183:3:-;4254:7;4319:20;:18;:20::i;:::-;4341:10;4290:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4280:73;;;;;;4273:80;;4177:183;;;:::o;1064:740:2:-;1142:7;1223:2;1203:9;:16;:22;1199:94;;1241:41;;;;;;;;;;:::i;:::-;;;;;;;;1199:94;1359:9;1378;1397:7;1643:4;1632:9;1628:20;1622:27;1617:32;;1688:4;1677:9;1673:20;1667:27;1662:32;;1741:4;1730:9;1726:20;1720:27;1717:1;1712:36;1707:41;;1775:22;1783:4;1789:1;1792;1795;1775:7;:22::i;:::-;1768:29;;;;;1064:740;;;;:::o;2944:275:3:-;2997:7;3037:16;3020:13;:33;3016:197;;;3076:24;3069:31;;;;3016:197;3138:64;3160:10;3172:12;3186:15;3138:21;:64::i;:::-;3131:71;;2944:275;;:::o;1952:1414:2:-;2037:7;2952:66;2946:1;2938:10;;:80;;2930:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;3080:2;3075:1;:7;;;:18;;;;3091:2;3086:1;:7;;;3075:18;3067:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3227:14;3244:24;3254:4;3260:1;3263;3266;3244:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3227:41;;3304:1;3286:20;;:6;:20;;;;3278:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3353:6;3346:13;;;1952:1414;;;;;;:::o;3225:327:3:-;3327:7;3404:8;3430:4;3452:7;3477:13;3516:4;3376:159;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3353:192;;;;;;3346:199;;3225:327;;;;;:::o;7:139:7:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;165:351::-;;;282:3;275:4;267:6;263:17;259:27;249:2;;300:1;297;290:12;249:2;336:6;323:20;313:30;;366:18;358:6;355:30;352:2;;;398:1;395;388:12;352:2;435:4;427:6;423:17;411:29;;489:3;481:4;473:6;469:17;459:8;455:32;452:41;449:2;;;506:1;503;496:12;449:2;239:277;;;;;:::o;568:171::-;;688:3;679:6;674:3;670:16;666:26;663:2;;;705:1;702;695:12;663:2;727:6;718:15;;653:86;;;;:::o;745:262::-;;853:2;841:9;832:7;828:23;824:32;821:2;;;869:1;866;859:12;821:2;912:1;937:53;982:7;973:6;962:9;958:22;937:53;:::i;:::-;927:63;;883:117;811:196;;;;:::o;1013:697::-;;;;1190:2;1178:9;1169:7;1165:23;1161:32;1158:2;;;1206:1;1203;1196:12;1158:2;1277:1;1266:9;1262:17;1249:31;1307:18;1299:6;1296:30;1293:2;;;1339:1;1336;1329:12;1293:2;1367:86;1445:7;1436:6;1425:9;1421:22;1367:86;:::i;:::-;1357:96;;1220:243;1530:2;1519:9;1515:18;1502:32;1561:18;1553:6;1550:30;1547:2;;;1593:1;1590;1583:12;1547:2;1629:64;1685:7;1676:6;1665:9;1661:22;1629:64;:::i;:::-;1611:82;;;;1473:230;1148:562;;;;;:::o;1716:118::-;1803:24;1821:5;1803:24;:::i;:::-;1798:3;1791:37;1781:53;;:::o;1840:157::-;1945:45;1965:24;1983:5;1965:24;:::i;:::-;1945:45;:::i;:::-;1940:3;1933:58;1923:74;;:::o;2003:109::-;2084:21;2099:5;2084:21;:::i;:::-;2079:3;2072:34;2062:50;;:::o;2118:118::-;2205:24;2223:5;2205:24;:::i;:::-;2200:3;2193:37;2183:53;;:::o;2242:157::-;2347:45;2367:24;2385:5;2367:24;:::i;:::-;2347:45;:::i;:::-;2342:3;2335:58;2325:74;;:::o;2427:314::-;;2562:88;2643:6;2638:3;2562:88;:::i;:::-;2555:95;;2660:43;2696:6;2691:3;2684:5;2660:43;:::i;:::-;2728:6;2723:3;2719:16;2712:23;;2545:196;;;;;:::o;2747:360::-;;2861:38;2893:5;2861:38;:::i;:::-;2915:70;2978:6;2973:3;2915:70;:::i;:::-;2908:77;;2994:52;3039:6;3034:3;3027:4;3020:5;3016:16;2994:52;:::i;:::-;3071:29;3093:6;3071:29;:::i;:::-;3066:3;3062:39;3055:46;;2837:270;;;;;:::o;3113:373::-;;3245:38;3277:5;3245:38;:::i;:::-;3299:88;3380:6;3375:3;3299:88;:::i;:::-;3292:95;;3396:52;3441:6;3436:3;3429:4;3422:5;3418:16;3396:52;:::i;:::-;3473:6;3468:3;3464:16;3457:23;;3221:265;;;;;:::o;3492:322::-;;3655:67;3719:2;3714:3;3655:67;:::i;:::-;3648:74;;3752:26;3748:1;3743:3;3739:11;3732:47;3805:2;3800:3;3796:12;3789:19;;3638:176;;;:::o;3820:382::-;;3983:67;4047:2;4042:3;3983:67;:::i;:::-;3976:74;;4080:34;4076:1;4071:3;4067:11;4060:55;4146:20;4141:2;4136:3;4132:12;4125:42;4193:2;4188:3;4184:12;4177:19;;3966:236;;;:::o;4208:329::-;;4371:67;4435:2;4430:3;4371:67;:::i;:::-;4364:74;;4468:33;4464:1;4459:3;4455:11;4448:54;4528:2;4523:3;4519:12;4512:19;;4354:183;;;:::o;4543:396::-;;4724:84;4806:1;4801:3;4724:84;:::i;:::-;4717:91;;4838:66;4834:1;4829:3;4825:11;4818:87;4931:1;4926:3;4922:11;4915:18;;4707:232;;;:::o;4945:366::-;;5108:67;5172:2;5167:3;5108:67;:::i;:::-;5101:74;;5205:34;5201:1;5196:3;5192:11;5185:55;5271:4;5266:2;5261:3;5257:12;5250:26;5302:2;5297:3;5293:12;5286:19;;5091:220;;;:::o;5317:366::-;;5480:67;5544:2;5539:3;5480:67;:::i;:::-;5473:74;;5577:34;5573:1;5568:3;5564:11;5557:55;5643:4;5638:2;5633:3;5629:12;5622:26;5674:2;5669:3;5665:12;5658:19;;5463:220;;;:::o;5689:118::-;5776:24;5794:5;5776:24;:::i;:::-;5771:3;5764:37;5754:53;;:::o;5813:112::-;5896:22;5912:5;5896:22;:::i;:::-;5891:3;5884:35;5874:51;;:::o;5931:291::-;;6093:103;6192:3;6183:6;6175;6093:103;:::i;:::-;6086:110;;6213:3;6206:10;;6075:147;;;;;:::o;6228:432::-;;6418:103;6517:3;6508:6;6500;6418:103;:::i;:::-;6411:110;;6531:75;6602:3;6593:6;6531:75;:::i;:::-;6631:2;6626:3;6622:12;6615:19;;6651:3;6644:10;;6400:260;;;;;;:::o;6666:271::-;;6818:93;6907:3;6898:6;6818:93;:::i;:::-;6811:100;;6928:3;6921:10;;6800:137;;;;:::o;6943:663::-;;7206:148;7350:3;7206:148;:::i;:::-;7199:155;;7364:75;7435:3;7426:6;7364:75;:::i;:::-;7464:2;7459:3;7455:12;7448:19;;7477:75;7548:3;7539:6;7477:75;:::i;:::-;7577:2;7572:3;7568:12;7561:19;;7597:3;7590:10;;7188:418;;;;;:::o;7612:210::-;;7737:2;7726:9;7722:18;7714:26;;7750:65;7812:1;7801:9;7797:17;7788:6;7750:65;:::i;:::-;7704:118;;;;:::o;7828:407::-;;7999:2;7988:9;7984:18;7976:26;;8012:65;8074:1;8063:9;8059:17;8050:6;8012:65;:::i;:::-;8124:9;8118:4;8114:20;8109:2;8098:9;8094:18;8087:48;8152:76;8223:4;8214:6;8152:76;:::i;:::-;8144:84;;7966:269;;;;;:::o;8241:886::-;;8540:3;8529:9;8525:19;8517:27;;8554:71;8622:1;8611:9;8607:17;8598:6;8554:71;:::i;:::-;8635:72;8703:2;8692:9;8688:18;8679:6;8635:72;:::i;:::-;8717;8785:2;8774:9;8770:18;8761:6;8717:72;:::i;:::-;8799;8867:2;8856:9;8852:18;8843:6;8799:72;:::i;:::-;8881:73;8949:3;8938:9;8934:19;8925:6;8881:73;:::i;:::-;8964;9032:3;9021:9;9017:19;9008:6;8964:73;:::i;:::-;9047;9115:3;9104:9;9100:19;9091:6;9047:73;:::i;:::-;8507:620;;;;;;;;;;:::o;9133:664::-;;9376:3;9365:9;9361:19;9353:27;;9390:71;9458:1;9447:9;9443:17;9434:6;9390:71;:::i;:::-;9471:72;9539:2;9528:9;9524:18;9515:6;9471:72;:::i;:::-;9553;9621:2;9610:9;9606:18;9597:6;9553:72;:::i;:::-;9635;9703:2;9692:9;9688:18;9679:6;9635:72;:::i;:::-;9717:73;9785:3;9774:9;9770:19;9761:6;9717:73;:::i;:::-;9343:454;;;;;;;;:::o;9803:545::-;;10014:3;10003:9;9999:19;9991:27;;10028:71;10096:1;10085:9;10081:17;10072:6;10028:71;:::i;:::-;10109:68;10173:2;10162:9;10158:18;10149:6;10109:68;:::i;:::-;10187:72;10255:2;10244:9;10240:18;10231:6;10187:72;:::i;:::-;10269;10337:2;10326:9;10322:18;10313:6;10269:72;:::i;:::-;9981:367;;;;;;;:::o;10354:419::-;;10558:2;10547:9;10543:18;10535:26;;10607:9;10601:4;10597:20;10593:1;10582:9;10578:17;10571:47;10635:131;10761:4;10635:131;:::i;:::-;10627:139;;10525:248;;;:::o;10779:419::-;;10983:2;10972:9;10968:18;10960:26;;11032:9;11026:4;11022:20;11018:1;11007:9;11003:17;10996:47;11060:131;11186:4;11060:131;:::i;:::-;11052:139;;10950:248;;;:::o;11204:419::-;;11408:2;11397:9;11393:18;11385:26;;11457:9;11451:4;11447:20;11443:1;11432:9;11428:17;11421:47;11485:131;11611:4;11485:131;:::i;:::-;11477:139;;11375:248;;;:::o;11629:419::-;;11833:2;11822:9;11818:18;11810:26;;11882:9;11876:4;11872:20;11868:1;11857:9;11853:17;11846:47;11910:131;12036:4;11910:131;:::i;:::-;11902:139;;11800:248;;;:::o;12054:419::-;;12258:2;12247:9;12243:18;12235:26;;12307:9;12301:4;12297:20;12293:1;12282:9;12278:17;12271:47;12335:131;12461:4;12335:131;:::i;:::-;12327:139;;12225:248;;;:::o;12479:222::-;;12610:2;12599:9;12595:18;12587:26;;12623:71;12691:1;12680:9;12676:17;12667:6;12623:71;:::i;:::-;12577:124;;;;:::o;12707:523::-;;;12846:11;12833:25;12946:1;12940:4;12936:12;12925:8;12909:14;12905:29;12901:48;12881:18;12877:73;12867:2;;12964:1;12961;12954:12;12867:2;12999:18;12989:8;12985:33;12977:41;;13051:4;13038:18;13028:28;;13079:18;13071:6;13068:30;13065:2;;;13111:1;13108;13101:12;13065:2;13142;13136:4;13132:13;13124:21;;13199:4;13191:6;13187:17;13171:14;13167:38;13161:4;13157:49;13154:2;;;13219:1;13216;13209:12;13154:2;12797:433;;;;;;:::o;13236:98::-;;13321:5;13315:12;13305:22;;13294:40;;;:::o;13340:168::-;;13457:6;13452:3;13445:19;13497:4;13492:3;13488:14;13473:29;;13435:73;;;;:::o;13514:147::-;;13652:3;13637:18;;13627:34;;;;:::o;13667:169::-;;13785:6;13780:3;13773:19;13825:4;13820:3;13816:14;13801:29;;13763:73;;;;:::o;13842:148::-;;13981:3;13966:18;;13956:34;;;;:::o;13996:305::-;;14055:20;14073:1;14055:20;:::i;:::-;14050:25;;14089:20;14107:1;14089:20;:::i;:::-;14084:25;;14243:1;14175:66;14171:74;14168:1;14165:81;14162:2;;;14249:18;;:::i;:::-;14162:2;14293:1;14290;14286:9;14279:16;;14040:261;;;;:::o;14307:185::-;;14364:20;14382:1;14364:20;:::i;:::-;14359:25;;14398:20;14416:1;14398:20;:::i;:::-;14393:25;;14437:1;14427:2;;14442:18;;:::i;:::-;14427:2;14484:1;14481;14477:9;14472:14;;14349:143;;;;:::o;14498:96::-;;14564:24;14582:5;14564:24;:::i;:::-;14553:35;;14543:51;;;:::o;14600:90::-;;14677:5;14670:13;14663:21;14652:32;;14642:48;;;:::o;14696:77::-;;14762:5;14751:16;;14741:32;;;:::o;14779:126::-;;14856:42;14849:5;14845:54;14834:65;;14824:81;;;:::o;14911:77::-;;14977:5;14966:16;;14956:32;;;:::o;14994:86::-;;15069:4;15062:5;15058:16;15047:27;;15037:43;;;:::o;15086:154::-;15170:6;15165:3;15160;15147:30;15232:1;15223:6;15218:3;15214:16;15207:27;15137:103;;;:::o;15246:307::-;15314:1;15324:113;15338:6;15335:1;15332:13;15324:113;;;15423:1;15418:3;15414:11;15408:18;15404:1;15399:3;15395:11;15388:39;15360:2;15357:1;15353:10;15348:15;;15324:113;;;15455:6;15452:1;15449:13;15446:2;;;15535:1;15526:6;15521:3;15517:16;15510:27;15446:2;15295:258;;;;:::o;15559:100::-;;15627:26;15647:5;15627:26;:::i;:::-;15616:37;;15606:53;;;:::o;15665:79::-;;15733:5;15722:16;;15712:32;;;:::o;15750:94::-;;15818:20;15832:5;15818:20;:::i;:::-;15807:31;;15797:47;;;:::o;15850:180::-;15898:77;15895:1;15888:88;15995:4;15992:1;15985:15;16019:4;16016:1;16009:15;16036:180;16084:77;16081:1;16074:88;16181:4;16178:1;16171:15;16205:4;16202:1;16195:15;16222:102;;16314:2;16310:7;16305:2;16298:5;16294:14;16290:28;16280:38;;16270:54;;;:::o;16330:94::-;;16411:5;16407:2;16403:14;16382:35;;16372:52;;;:::o;16430:122::-;16503:24;16521:5;16503:24;:::i;:::-;16496:5;16493:35;16483:2;;16542:1;16539;16532:12;16483:2;16473:79;:::o" }, "methodIdentifiers": { "execute((address,address,uint256,uint256,uint256,bytes),bytes)": "47153f82", "getNonce(address)": "2d0335ab", "verify((address,address,uint256,uint256,uint256,bytes),bytes)": "bf5d3bdb" } } } }, "openzeppelin-solidity/contracts/utils/Context.sol": { "Context": { "abi": [], "evm": { "bytecode": { "generatedSources": [], "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "deployedBytecode": { "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "methodIdentifiers": {} } } } }, "sources": { "contracts/Registry.sol": { "ast": { "absolutePath": "contracts/Registry.sol", "exportedSymbols": { "BaseRelayRecipient": [ 482 ], "Context": [ 675 ], "ECDSA": [ 266 ], "EIP712": [ 406 ], "MinimalForwarder": [ 652 ], "Registry": [ 73 ] }, "id": 74, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "32:23:0" }, { "absolutePath": "openzeppelin-solidity/contracts/metatx/BaseRelayRecipient.sol", "file": "openzeppelin-solidity/contracts/metatx/BaseRelayRecipient.sol", "id": 2, "nodeType": "ImportDirective", "scope": 74, "sourceUnit": 483, "src": "57:71:0", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/metatx/MinimalForwarder.sol", "file": "openzeppelin-solidity/contracts/metatx/MinimalForwarder.sol", "id": 3, "nodeType": "ImportDirective", "scope": 74, "sourceUnit": 653, "src": "129:69:0", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 4, "name": "BaseRelayRecipient", "nodeType": "IdentifierPath", "referencedDeclaration": 482, "src": "221:18:0" }, "id": 5, "nodeType": "InheritanceSpecifier", "src": "221:18:0" } ], "contractDependencies": [ 482, 675 ], "contractKind": "contract", "fullyImplemented": true, "id": 73, "linearizedBaseContracts": [ 73, 482, 675 ], "name": "Registry", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "id": 11, "name": "Registered", "nodeType": "EventDefinition", "parameters": { "id": 10, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 7, "indexed": true, "mutability": "mutable", "name": "who", "nodeType": "VariableDeclaration", "scope": 11, "src": "263:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 6, "name": "address", "nodeType": "ElementaryTypeName", "src": "263:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 9, "indexed": false, "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", "scope": 11, "src": "284:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 8, "name": "string", "nodeType": "ElementaryTypeName", "src": "284:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "262:34:0" }, "src": "246:51:0" }, { "constant": false, "functionSelector": "5cf3d346", "id": 15, "mutability": "mutable", "name": "names", "nodeType": "VariableDeclaration", "scope": 73, "src": "301:39:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", "typeString": "mapping(address => string)" }, "typeName": { "id": 14, "keyType": { "id": 12, "name": "address", "nodeType": "ElementaryTypeName", "src": "309:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "301:26:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", "typeString": "mapping(address => string)" }, "valueType": { "id": 13, "name": "string", "nodeType": "ElementaryTypeName", "src": "320:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } } }, "visibility": "public" }, { "constant": false, "functionSelector": "2b1fd995", "id": 19, "mutability": "mutable", "name": "owners", "nodeType": "VariableDeclaration", "scope": 73, "src": "344:40:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", "typeString": "mapping(string => address)" }, "typeName": { "id": 18, "keyType": { "id": 16, "name": "string", "nodeType": "ElementaryTypeName", "src": "352:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "nodeType": "Mapping", "src": "344:26:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", "typeString": "mapping(string => address)" }, "valueType": { "id": 17, "name": "address", "nodeType": "ElementaryTypeName", "src": "362:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, "visibility": "public" }, { "body": { "id": 31, "nodeType": "Block", "src": "504:5:0", "statements": [] }, "id": 32, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { "arguments": [ { "id": 27, "name": "forwarder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "492:9:0", "typeDescriptions": { "typeIdentifier": "t_contract$_MinimalForwarder_$652", "typeString": "contract MinimalForwarder" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_MinimalForwarder_$652", "typeString": "contract MinimalForwarder" } ], "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "484:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 25, "name": "address", "nodeType": "ElementaryTypeName", "src": "484:7:0", "typeDescriptions": {} } }, "id": 28, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "484:18:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 29, "modifierName": { "id": 24, "name": "BaseRelayRecipient", "nodeType": "IdentifierPath", "referencedDeclaration": 482, "src": "465:18:0" }, "nodeType": "ModifierInvocation", "src": "465:38:0" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 23, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 22, "mutability": "mutable", "name": "forwarder", "nodeType": "VariableDeclaration", "scope": 32, "src": "401:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_MinimalForwarder_$652", "typeString": "contract MinimalForwarder" }, "typeName": { "id": 21, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 20, "name": "MinimalForwarder", "nodeType": "IdentifierPath", "referencedDeclaration": 652, "src": "401:16:0" }, "referencedDeclaration": 652, "src": "401:16:0", "typeDescriptions": { "typeIdentifier": "t_contract$_MinimalForwarder_$652", "typeString": "contract MinimalForwarder" } }, "visibility": "internal" } ], "src": "400:28:0" }, "returnParameters": { "id": 30, "nodeType": "ParameterList", "parameters": [], "src": "504:0:0" }, "scope": 73, "src": "389:120:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 71, "nodeType": "Block", "src": "560:206:0", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 45, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 38, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19, "src": "574:6:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", "typeString": "mapping(string memory => address)" } }, "id": 40, "indexExpression": { "id": 39, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34, "src": "581:4:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "574:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 43, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "598:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 42, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "590:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 41, "name": "address", "nodeType": "ElementaryTypeName", "src": "590:7:0", "typeDescriptions": {} } }, "id": 44, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "590:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "574:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4e616d652074616b656e", "id": 46, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "602:12:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a", "typeString": "literal_string \"Name taken\"" }, "value": "Name taken" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a", "typeString": "literal_string \"Name taken\"" } ], "id": 37, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "566:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 47, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "566:49:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 48, "nodeType": "ExpressionStatement", "src": "566:49:0" }, { "assignments": [ 50 ], "declarations": [ { "constant": false, "id": 50, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "scope": 71, "src": "621:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 49, "name": "address", "nodeType": "ElementaryTypeName", "src": "621:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 53, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "id": 51, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [ 454 ], "referencedDeclaration": 454, "src": "637:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 52, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "637:12:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "621:28:0" }, { "expression": { "id": 58, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 54, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19, "src": "682:6:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", "typeString": "mapping(string memory => address)" } }, "id": 56, "indexExpression": { "id": 55, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34, "src": "689:4:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "682:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 57, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50, "src": "697:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "682:20:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 59, "nodeType": "ExpressionStatement", "src": "682:20:0" }, { "expression": { "id": 64, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 60, "name": "names", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15, "src": "708:5:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", "typeString": "mapping(address => string storage ref)" } }, "id": 62, "indexExpression": { "id": 61, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50, "src": "714:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "708:12:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 63, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34, "src": "723:4:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "708:19:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 65, "nodeType": "ExpressionStatement", "src": "708:19:0" }, { "eventCall": { "arguments": [ { "id": 67, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50, "src": "749:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 68, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34, "src": "756:4:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 66, "name": "Registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, "src": "738:10:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,string memory)" } }, "id": 69, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "738:23:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 70, "nodeType": "EmitStatement", "src": "733:28:0" } ] }, "functionSelector": "f2c298be", "id": 72, "implemented": true, "kind": "function", "modifiers": [], "name": "register", "nodeType": "FunctionDefinition", "parameters": { "id": 35, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 34, "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", "scope": 72, "src": "531:18:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 33, "name": "string", "nodeType": "ElementaryTypeName", "src": "531:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "530:20:0" }, "returnParameters": { "id": 36, "nodeType": "ParameterList", "parameters": [], "src": "560:0:0" }, "scope": 73, "src": "513:253:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], "scope": 74, "src": "200:568:0" } ], "src": "32:737:0" }, "id": 0 }, "contracts/SimpleRegistry.sol": { "ast": { "absolutePath": "contracts/SimpleRegistry.sol", "exportedSymbols": { "SimpleRegistry": [ 130 ] }, "id": 131, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 75, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "32:23:1" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 130, "linearizedBaseContracts": [ 130 ], "name": "SimpleRegistry", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "id": 81, "name": "Registered", "nodeType": "EventDefinition", "parameters": { "id": 80, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 77, "indexed": true, "mutability": "mutable", "name": "who", "nodeType": "VariableDeclaration", "scope": 81, "src": "104:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 76, "name": "address", "nodeType": "ElementaryTypeName", "src": "104:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 79, "indexed": false, "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", "scope": 81, "src": "125:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 78, "name": "string", "nodeType": "ElementaryTypeName", "src": "125:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "103:34:1" }, "src": "87:51:1" }, { "constant": false, "functionSelector": "5cf3d346", "id": 85, "mutability": "mutable", "name": "names", "nodeType": "VariableDeclaration", "scope": 130, "src": "142:39:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", "typeString": "mapping(address => string)" }, "typeName": { "id": 84, "keyType": { "id": 82, "name": "address", "nodeType": "ElementaryTypeName", "src": "150:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "142:26:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", "typeString": "mapping(address => string)" }, "valueType": { "id": 83, "name": "string", "nodeType": "ElementaryTypeName", "src": "161:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } } }, "visibility": "public" }, { "constant": false, "functionSelector": "2b1fd995", "id": 89, "mutability": "mutable", "name": "owners", "nodeType": "VariableDeclaration", "scope": 130, "src": "185:40:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", "typeString": "mapping(string => address)" }, "typeName": { "id": 88, "keyType": { "id": 86, "name": "string", "nodeType": "ElementaryTypeName", "src": "193:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "nodeType": "Mapping", "src": "185:26:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", "typeString": "mapping(string => address)" }, "valueType": { "id": 87, "name": "address", "nodeType": "ElementaryTypeName", "src": "203:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, "visibility": "public" }, { "body": { "id": 128, "nodeType": "Block", "src": "277:177:1", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 95, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89, "src": "291:6:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", "typeString": "mapping(string memory => address)" } }, "id": 97, "indexExpression": { "id": 96, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 91, "src": "298:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "291:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "315:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 99, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "307:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 98, "name": "address", "nodeType": "ElementaryTypeName", "src": "307:7:1", "typeDescriptions": {} } }, "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "307:10:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "291:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4e616d652074616b656e", "id": 103, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "319:12:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a", "typeString": "literal_string \"Name taken\"" }, "value": "Name taken" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_57f1164c918d467ec4945401919a38aae5e2e27e960b10c5decaaf1dd422057a", "typeString": "literal_string \"Name taken\"" } ], "id": 94, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "283:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 104, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "283:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 105, "nodeType": "ExpressionStatement", "src": "283:49:1" }, { "assignments": [ 107 ], "declarations": [ { "constant": false, "id": 107, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "scope": 128, "src": "338:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 106, "name": "address", "nodeType": "ElementaryTypeName", "src": "338:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 110, "initialValue": { "expression": { "id": 108, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "354:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "354:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "338:26:1" }, { "expression": { "id": 115, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 111, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89, "src": "370:6:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", "typeString": "mapping(string memory => address)" } }, "id": 113, "indexExpression": { "id": 112, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 91, "src": "377:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "370:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 114, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 107, "src": "385:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "370:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 116, "nodeType": "ExpressionStatement", "src": "370:20:1" }, { "expression": { "id": 121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 117, "name": "names", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "396:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", "typeString": "mapping(address => string storage ref)" } }, "id": 119, "indexExpression": { "id": 118, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 107, "src": "402:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "396:12:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 120, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 91, "src": "411:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "396:19:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 122, "nodeType": "ExpressionStatement", "src": "396:19:1" }, { "eventCall": { "arguments": [ { "id": 124, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 107, "src": "437:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 125, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 91, "src": "444:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 123, "name": "Registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 81, "src": "426:10:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,string memory)" } }, "id": 126, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "426:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 127, "nodeType": "EmitStatement", "src": "421:28:1" } ] }, "functionSelector": "f2c298be", "id": 129, "implemented": true, "kind": "function", "modifiers": [], "name": "register", "nodeType": "FunctionDefinition", "parameters": { "id": 92, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 91, "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", "scope": 129, "src": "248:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 90, "name": "string", "nodeType": "ElementaryTypeName", "src": "248:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "247:20:1" }, "returnParameters": { "id": 93, "nodeType": "ParameterList", "parameters": [], "src": "277:0:1" }, "scope": 130, "src": "230:224:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], "scope": 131, "src": "57:399:1" } ], "src": "32:425:1" }, "id": 1 }, "openzeppelin-solidity/contracts/cryptography/ECDSA.sol": { "ast": { "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", "exportedSymbols": { "ECDSA": [ 266 ] }, "id": 267, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 132, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:23:2" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": { "id": 133, "nodeType": "StructuredDocumentation", "src": "58:205:2", "text": " @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address." }, "fullyImplemented": true, "id": 266, "linearizedBaseContracts": [ 266 ], "name": "ECDSA", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 170, "nodeType": "Block", "src": "1151:653:2", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 146, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 143, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 138, "src": "1203:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "src": "1203:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "3635", "id": 145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1223:2:2", "typeDescriptions": { "typeIdentifier": "t_rational_65_by_1", "typeString": "int_const 65" }, "value": "65" }, "src": "1203:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 152, "nodeType": "IfStatement", "src": "1199:94:2", "trueBody": { "id": 151, "nodeType": "Block", "src": "1227:66:2", "statements": [ { "expression": { "arguments": [ { "hexValue": "45434453413a20696e76616c6964207369676e6174757265206c656e677468", "id": 148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1248:33:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77", "typeString": "literal_string \"ECDSA: invalid signature length\"" }, "value": "ECDSA: invalid signature length" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77", "typeString": "literal_string \"ECDSA: invalid signature length\"" } ], "id": 147, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "1241:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 149, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1241:41:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 150, "nodeType": "ExpressionStatement", "src": "1241:41:2" } ] } }, { "assignments": [ 154 ], "declarations": [ { "constant": false, "id": 154, "mutability": "mutable", "name": "r", "nodeType": "VariableDeclaration", "scope": 170, "src": "1359:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 153, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1359:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "id": 155, "nodeType": "VariableDeclarationStatement", "src": "1359:9:2" }, { "assignments": [ 157 ], "declarations": [ { "constant": false, "id": 157, "mutability": "mutable", "name": "s", "nodeType": "VariableDeclaration", "scope": 170, "src": "1378:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 156, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1378:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "id": 158, "nodeType": "VariableDeclarationStatement", "src": "1378:9:2" }, { "assignments": [ 160 ], "declarations": [ { "constant": false, "id": 160, "mutability": "mutable", "name": "v", "nodeType": "VariableDeclaration", "scope": 170, "src": "1397:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 159, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1397:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" } ], "id": 161, "nodeType": "VariableDeclarationStatement", "src": "1397:7:2" }, { "AST": { "nodeType": "YulBlock", "src": "1603:155:2", "statements": [ { "nodeType": "YulAssignment", "src": "1617:32:2", "value": { "arguments": [ { "arguments": [ { "name": "signature", "nodeType": "YulIdentifier", "src": "1632:9:2" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1643:4:2", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1628:3:2" }, "nodeType": "YulFunctionCall", "src": "1628:20:2" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "1622:5:2" }, "nodeType": "YulFunctionCall", "src": "1622:27:2" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", "src": "1617:1:2" } ] }, { "nodeType": "YulAssignment", "src": "1662:32:2", "value": { "arguments": [ { "arguments": [ { "name": "signature", "nodeType": "YulIdentifier", "src": "1677:9:2" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1688:4:2", "type": "", "value": "0x40" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1673:3:2" }, "nodeType": "YulFunctionCall", "src": "1673:20:2" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "1667:5:2" }, "nodeType": "YulFunctionCall", "src": "1667:27:2" }, "variableNames": [ { "name": "s", "nodeType": "YulIdentifier", "src": "1662:1:2" } ] }, { "nodeType": "YulAssignment", "src": "1707:41:2", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1717:1:2", "type": "", "value": "0" }, { "arguments": [ { "arguments": [ { "name": "signature", "nodeType": "YulIdentifier", "src": "1730:9:2" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1741:4:2", "type": "", "value": "0x60" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1726:3:2" }, "nodeType": "YulFunctionCall", "src": "1726:20:2" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "1720:5:2" }, "nodeType": "YulFunctionCall", "src": "1720:27:2" } ], "functionName": { "name": "byte", "nodeType": "YulIdentifier", "src": "1712:4:2" }, "nodeType": "YulFunctionCall", "src": "1712:36:2" }, "variableNames": [ { "name": "v", "nodeType": "YulIdentifier", "src": "1707:1:2" } ] } ] }, "evmVersion": "istanbul", "externalReferences": [ { "declaration": 154, "isOffset": false, "isSlot": false, "src": "1617:1:2", "valueSize": 1 }, { "declaration": 157, "isOffset": false, "isSlot": false, "src": "1662:1:2", "valueSize": 1 }, { "declaration": 138, "isOffset": false, "isSlot": false, "src": "1632:9:2", "valueSize": 1 }, { "declaration": 138, "isOffset": false, "isSlot": false, "src": "1677:9:2", "valueSize": 1 }, { "declaration": 138, "isOffset": false, "isSlot": false, "src": "1730:9:2", "valueSize": 1 }, { "declaration": 160, "isOffset": false, "isSlot": false, "src": "1707:1:2", "valueSize": 1 } ], "id": 162, "nodeType": "InlineAssembly", "src": "1594:164:2" }, { "expression": { "arguments": [ { "id": 164, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 136, "src": "1783:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 165, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 160, "src": "1789:1:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { "id": 166, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "1792:1:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 167, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 157, "src": "1795:1:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint8", "typeString": "uint8" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 163, "name": "recover", "nodeType": "Identifier", "overloadedDeclarations": [ 171, 228 ], "referencedDeclaration": 228, "src": "1775:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, "id": 168, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1775:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 142, "id": 169, "nodeType": "Return", "src": "1768:29:2" } ] }, "documentation": { "id": 134, "nodeType": "StructuredDocumentation", "src": "284:775:2", "text": " @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it." }, "id": 171, "implemented": true, "kind": "function", "modifiers": [], "name": "recover", "nodeType": "FunctionDefinition", "parameters": { "id": 139, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 136, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "scope": 171, "src": "1081:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 135, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1081:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 138, "mutability": "mutable", "name": "signature", "nodeType": "VariableDeclaration", "scope": 171, "src": "1095:22:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 137, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1095:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1080:38:2" }, "returnParameters": { "id": 142, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 141, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 171, "src": "1142:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 140, "name": "address", "nodeType": "ElementaryTypeName", "src": "1142:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1141:9:2" }, "scope": 266, "src": "1064:740:2", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { "id": 227, "nodeType": "Block", "src": "2046:1320:2", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 188, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 180, "src": "2946:1:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 187, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2938:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 186, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2938:7:2", "typeDescriptions": {} } }, "id": 189, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2938:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130", "id": 190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2952:66:2", "typeDescriptions": { "typeIdentifier": "t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1", "typeString": "int_const 5789...(69 digits omitted)...7168" }, "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0" }, "src": "2938:80:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "45434453413a20696e76616c6964207369676e6174757265202773272076616c7565", "id": 192, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3020:36:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd", "typeString": "literal_string \"ECDSA: invalid signature 's' value\"" }, "value": "ECDSA: invalid signature 's' value" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd", "typeString": "literal_string \"ECDSA: invalid signature 's' value\"" } ], "id": 185, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2930:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2930:127:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 194, "nodeType": "ExpressionStatement", "src": "2930:127:2" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 196, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 176, "src": "3075:1:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "3237", "id": 197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3080:2:2", "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", "typeString": "int_const 27" }, "value": "27" }, "src": "3075:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 199, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 176, "src": "3086:1:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "3238", "id": 200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3091:2:2", "typeDescriptions": { "typeIdentifier": "t_rational_28_by_1", "typeString": "int_const 28" }, "value": "28" }, "src": "3086:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "3075:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "45434453413a20696e76616c6964207369676e6174757265202776272076616c7565", "id": 203, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3095:36:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4", "typeString": "literal_string \"ECDSA: invalid signature 'v' value\"" }, "value": "ECDSA: invalid signature 'v' value" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4", "typeString": "literal_string \"ECDSA: invalid signature 'v' value\"" } ], "id": 195, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "3067:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 204, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3067:65:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 205, "nodeType": "ExpressionStatement", "src": "3067:65:2" }, { "assignments": [ 207 ], "declarations": [ { "constant": false, "id": 207, "mutability": "mutable", "name": "signer", "nodeType": "VariableDeclaration", "scope": 227, "src": "3227:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 206, "name": "address", "nodeType": "ElementaryTypeName", "src": "3227:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 214, "initialValue": { "arguments": [ { "id": 209, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 174, "src": "3254:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 210, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 176, "src": "3260:1:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { "id": 211, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 178, "src": "3263:1:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 212, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 180, "src": "3266:1:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint8", "typeString": "uint8" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 208, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -6, "src": "3244:9:2", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, "id": 213, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3244:24:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "3227:41:2" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 216, "name": "signer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 207, "src": "3286:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3304:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 218, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3296:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 217, "name": "address", "nodeType": "ElementaryTypeName", "src": "3296:7:2", "typeDescriptions": {} } }, "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3296:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3286:20:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "45434453413a20696e76616c6964207369676e6174757265", "id": 222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3308:26:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be", "typeString": "literal_string \"ECDSA: invalid signature\"" }, "value": "ECDSA: invalid signature" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be", "typeString": "literal_string \"ECDSA: invalid signature\"" } ], "id": 215, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "3278:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 223, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3278:57:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 224, "nodeType": "ExpressionStatement", "src": "3278:57:2" }, { "expression": { "id": 225, "name": "signer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 207, "src": "3353:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 184, "id": 226, "nodeType": "Return", "src": "3346:13:2" } ] }, "documentation": { "id": 172, "nodeType": "StructuredDocumentation", "src": "1810:137:2", "text": " @dev Overload of {ECDSA-recover-bytes32-bytes-} that receives the `v`,\n `r` and `s` signature fields separately." }, "id": 228, "implemented": true, "kind": "function", "modifiers": [], "name": "recover", "nodeType": "FunctionDefinition", "parameters": { "id": 181, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 174, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "scope": 228, "src": "1969:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 173, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1969:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 176, "mutability": "mutable", "name": "v", "nodeType": "VariableDeclaration", "scope": 228, "src": "1983:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 175, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1983:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" }, { "constant": false, "id": 178, "mutability": "mutable", "name": "r", "nodeType": "VariableDeclaration", "scope": 228, "src": "1992:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 177, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1992:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 180, "mutability": "mutable", "name": "s", "nodeType": "VariableDeclaration", "scope": 228, "src": "2003:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 179, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2003:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "1968:45:2" }, "returnParameters": { "id": 184, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 183, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 228, "src": "2037:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 182, "name": "address", "nodeType": "ElementaryTypeName", "src": "2037:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "2036:9:2" }, "scope": 266, "src": "1952:1414:2", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { "id": 244, "nodeType": "Block", "src": "3708:187:2", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", "id": 239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3846:34:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\"" }, "value": "\u0019Ethereum Signed Message:\n32" }, { "id": 240, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 231, "src": "3882:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\"" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "expression": { "id": 237, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3829:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "3829:16:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 241, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3829:58:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 236, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "3819:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3819:69:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 235, "id": 243, "nodeType": "Return", "src": "3812:76:2" } ] }, "documentation": { "id": 229, "nodeType": "StructuredDocumentation", "src": "3372:253:2", "text": " @dev Returns an Ethereum Signed Message, created from a `hash`. This\n replicates the behavior of the\n https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign[`eth_sign`]\n JSON-RPC method.\n See {recover}." }, "id": 245, "implemented": true, "kind": "function", "modifiers": [], "name": "toEthSignedMessageHash", "nodeType": "FunctionDefinition", "parameters": { "id": 232, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 231, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "scope": 245, "src": "3662:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 230, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3662:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "3661:14:2" }, "returnParameters": { "id": 235, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 234, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 245, "src": "3699:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 233, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3699:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "3698:9:2" }, "scope": 266, "src": "3630:265:2", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { "id": 264, "nodeType": "Block", "src": "4066:92:2", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "hexValue": "1901", "id": 258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4110:10:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", "typeString": "literal_string hex\"1901\"" }, "value": "\u0019\u0001" }, { "id": 259, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 248, "src": "4122:15:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 260, "name": "structHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 250, "src": "4139:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", "typeString": "literal_string hex\"1901\"" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "expression": { "id": 256, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4093:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 257, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "4093:16:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 261, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4093:57:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 255, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "4083:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 262, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4083:68:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 254, "id": 263, "nodeType": "Return", "src": "4076:75:2" } ] }, "documentation": { "id": 246, "nodeType": "StructuredDocumentation", "src": "3901:58:2", "text": " @dev TODO.\n See {recover}." }, "id": 265, "implemented": true, "kind": "function", "modifiers": [], "name": "toTypedDataHash", "nodeType": "FunctionDefinition", "parameters": { "id": 251, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 248, "mutability": "mutable", "name": "domainSeparator", "nodeType": "VariableDeclaration", "scope": 265, "src": "3989:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 247, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3989:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 250, "mutability": "mutable", "name": "structHash", "nodeType": "VariableDeclaration", "scope": 265, "src": "4014:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 249, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4014:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "3988:45:2" }, "returnParameters": { "id": 254, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 253, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 265, "src": "4057:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 252, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4057:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "4056:9:2" }, "scope": 266, "src": "3964:194:2", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], "scope": 267, "src": "264:3896:2" } ], "src": "33:4128:2" }, "id": 2 }, "openzeppelin-solidity/contracts/drafts/EIP712.sol": { "ast": { "absolutePath": "openzeppelin-solidity/contracts/drafts/EIP712.sol", "exportedSymbols": { "EIP712": [ 406 ] }, "id": 407, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 268, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:23:3" }, { "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 269, "nodeType": "StructuredDocumentation", "src": "58:1142:3", "text": " @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._" }, "fullyImplemented": true, "id": 406, "linearizedBaseContracts": [ 406 ], "name": "EIP712", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 271, "mutability": "immutable", "name": "_CACHED_DOMAIN_SEPARATOR", "nodeType": "VariableDeclaration", "scope": 406, "src": "1469:50:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 270, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1469:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "private" }, { "constant": false, "id": 273, "mutability": "immutable", "name": "_CACHED_CHAIN_ID", "nodeType": "VariableDeclaration", "scope": 406, "src": "1525:42:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 272, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1525:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "private" }, { "constant": false, "id": 275, "mutability": "immutable", "name": "_HASHED_NAME", "nodeType": "VariableDeclaration", "scope": 406, "src": "1574:38:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 274, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1574:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "private" }, { "constant": false, "id": 277, "mutability": "immutable", "name": "_HASHED_VERSION", "nodeType": "VariableDeclaration", "scope": 406, "src": "1618:41:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 276, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1618:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "private" }, { "constant": false, "id": 279, "mutability": "immutable", "name": "_TYPE_HASH", "nodeType": "VariableDeclaration", "scope": 406, "src": "1665:36:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 278, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1665:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "private" }, { "body": { "id": 336, "nodeType": "Block", "src": "2371:487:3", "statements": [ { "assignments": [ 288 ], "declarations": [ { "constant": false, "id": 288, "mutability": "mutable", "name": "hashedName", "nodeType": "VariableDeclaration", "scope": 336, "src": "2381:18:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 287, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2381:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "id": 295, "initialValue": { "arguments": [ { "arguments": [ { "id": 292, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 282, "src": "2418:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 291, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2412:5:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { "id": 290, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2412:5:3", "typeDescriptions": {} } }, "id": 293, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2412:11:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 289, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2402:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 294, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2402:22:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "2381:43:3" }, { "assignments": [ 297 ], "declarations": [ { "constant": false, "id": 297, "mutability": "mutable", "name": "hashedVersion", "nodeType": "VariableDeclaration", "scope": 336, "src": "2434:21:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 296, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2434:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "id": 304, "initialValue": { "arguments": [ { "arguments": [ { "id": 301, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 284, "src": "2474:7:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 300, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2468:5:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { "id": 299, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2468:5:3", "typeDescriptions": {} } }, "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2468:14:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 298, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2458:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 303, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2458:25:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "2434:49:3" }, { "assignments": [ 306 ], "declarations": [ { "constant": false, "id": 306, "mutability": "mutable", "name": "typeHash", "nodeType": "VariableDeclaration", "scope": 336, "src": "2493:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 305, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2493:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "id": 310, "initialValue": { "arguments": [ { "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", "id": 308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2522:84:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" }, "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" } ], "id": 307, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "2512:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2512:95:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "2493:114:3" }, { "expression": { "id": 313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 311, "name": "_HASHED_NAME", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 275, "src": "2617:12:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 312, "name": "hashedName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 288, "src": "2632:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2617:25:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 314, "nodeType": "ExpressionStatement", "src": "2617:25:3" }, { "expression": { "id": 317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 315, "name": "_HASHED_VERSION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 277, "src": "2652:15:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 316, "name": "hashedVersion", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 297, "src": "2670:13:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2652:31:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 318, "nodeType": "ExpressionStatement", "src": "2652:31:3" }, { "expression": { "id": 322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 319, "name": "_CACHED_CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 273, "src": "2693:16:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 320, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "2712:5:3", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "chainid", "nodeType": "MemberAccess", "src": "2712:13:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2693:32:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 323, "nodeType": "ExpressionStatement", "src": "2693:32:3" }, { "expression": { "id": 330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 324, "name": "_CACHED_DOMAIN_SEPARATOR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 271, "src": "2735:24:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 326, "name": "typeHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 306, "src": "2784:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 327, "name": "hashedName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 288, "src": "2794:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 328, "name": "hashedVersion", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 297, "src": "2806:13:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 325, "name": "_buildDomainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 386, "src": "2762:21:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (bytes32,bytes32,bytes32) view returns (bytes32)" } }, "id": 329, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2762:58:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2735:85:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 331, "nodeType": "ExpressionStatement", "src": "2735:85:3" }, { "expression": { "id": 334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 332, "name": "_TYPE_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, "src": "2830:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 333, "name": "typeHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 306, "src": "2843:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2830:21:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 335, "nodeType": "ExpressionStatement", "src": "2830:21:3" } ] }, "documentation": { "id": 280, "nodeType": "StructuredDocumentation", "src": "1752:559:3", "text": " @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]." }, "id": 337, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 285, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 282, "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", "scope": 337, "src": "2328:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 281, "name": "string", "nodeType": "ElementaryTypeName", "src": "2328:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 284, "mutability": "mutable", "name": "version", "nodeType": "VariableDeclaration", "scope": 337, "src": "2348:21:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 283, "name": "string", "nodeType": "ElementaryTypeName", "src": "2348:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2327:43:3" }, "returnParameters": { "id": 286, "nodeType": "ParameterList", "parameters": [], "src": "2371:0:3" }, "scope": 406, "src": "2316:542:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 358, "nodeType": "Block", "src": "3006:213:3", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 346, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 343, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "3020:5:3", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "chainid", "nodeType": "MemberAccess", "src": "3020:13:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 345, "name": "_CACHED_CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 273, "src": "3037:16:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3020:33:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 356, "nodeType": "Block", "src": "3117:96:3", "statements": [ { "expression": { "arguments": [ { "id": 351, "name": "_TYPE_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, "src": "3160:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 352, "name": "_HASHED_NAME", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 275, "src": "3172:12:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 353, "name": "_HASHED_VERSION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 277, "src": "3186:15:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 350, "name": "_buildDomainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 386, "src": "3138:21:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (bytes32,bytes32,bytes32) view returns (bytes32)" } }, "id": 354, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3138:64:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 342, "id": 355, "nodeType": "Return", "src": "3131:71:3" } ] }, "id": 357, "nodeType": "IfStatement", "src": "3016:197:3", "trueBody": { "id": 349, "nodeType": "Block", "src": "3055:56:3", "statements": [ { "expression": { "id": 347, "name": "_CACHED_DOMAIN_SEPARATOR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 271, "src": "3076:24:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 342, "id": 348, "nodeType": "Return", "src": "3069:31:3" } ] } } ] }, "documentation": { "id": 338, "nodeType": "StructuredDocumentation", "src": "2864:75:3", "text": " @dev Returns the domain separator for the current chain." }, "id": 359, "implemented": true, "kind": "function", "modifiers": [], "name": "_domainSeparatorV4", "nodeType": "FunctionDefinition", "parameters": { "id": 339, "nodeType": "ParameterList", "parameters": [], "src": "2971:2:3" }, "returnParameters": { "id": 342, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 341, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 359, "src": "2997:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 340, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2997:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "2996:9:3" }, "scope": 406, "src": "2944:275:3", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 385, "nodeType": "Block", "src": "3336:216:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 373, "name": "typeHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 361, "src": "3404:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 374, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 363, "src": "3430:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 375, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 365, "src": "3452:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "expression": { "id": 376, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "3477:5:3", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "chainid", "nodeType": "MemberAccess", "src": "3477:13:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [ { "id": 380, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "3516:4:3", "typeDescriptions": { "typeIdentifier": "t_contract$_EIP712_$406", "typeString": "contract EIP712" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_EIP712_$406", "typeString": "contract EIP712" } ], "id": 379, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3508:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 378, "name": "address", "nodeType": "ElementaryTypeName", "src": "3508:7:3", "typeDescriptions": {} } }, "id": 381, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3508:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 371, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3376:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 372, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "src": "3376:10:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 382, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3376:159:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 370, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "3353:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 383, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3353:192:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 369, "id": 384, "nodeType": "Return", "src": "3346:199:3" } ] }, "id": 386, "implemented": true, "kind": "function", "modifiers": [], "name": "_buildDomainSeparator", "nodeType": "FunctionDefinition", "parameters": { "id": 366, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 361, "mutability": "mutable", "name": "typeHash", "nodeType": "VariableDeclaration", "scope": 386, "src": "3256:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 360, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3256:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 363, "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", "scope": 386, "src": "3274:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 362, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3274:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 365, "mutability": "mutable", "name": "version", "nodeType": "VariableDeclaration", "scope": 386, "src": "3288:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 364, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3288:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "3255:49:3" }, "returnParameters": { "id": 369, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 368, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 386, "src": "3327:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 367, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3327:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "3326:9:3" }, "scope": 406, "src": "3225:327:3", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { "id": 404, "nodeType": "Block", "src": "4263:97:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "hexValue": "1901", "id": 397, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4307:10:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", "typeString": "literal_string hex\"1901\"" }, "value": "\u0019\u0001" }, { "arguments": [], "expression": { "argumentTypes": [], "id": 398, "name": "_domainSeparatorV4", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 359, "src": "4319:18:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", "typeString": "function () view returns (bytes32)" } }, "id": 399, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4319:20:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 400, "name": "structHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "4341:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", "typeString": "literal_string hex\"1901\"" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "expression": { "id": 395, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4290:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 396, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "4290:16:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 401, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4290:62:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 394, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "4280:9:3", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4280:73:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 393, "id": 403, "nodeType": "Return", "src": "4273:80:3" } ] }, "documentation": { "id": 387, "nodeType": "StructuredDocumentation", "src": "3558:614:3", "text": " @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```" }, "id": 405, "implemented": true, "kind": "function", "modifiers": [], "name": "_hashTypedDataV4", "nodeType": "FunctionDefinition", "parameters": { "id": 390, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 389, "mutability": "mutable", "name": "structHash", "nodeType": "VariableDeclaration", "scope": 405, "src": "4203:18:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 388, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4203:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "4202:20:3" }, "returnParameters": { "id": 393, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 392, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 405, "src": "4254:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 391, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4254:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "4253:9:3" }, "scope": 406, "src": "4177:183:3", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], "scope": 407, "src": "1201:3161:3" } ], "src": "33:4330:3" }, "id": 3 }, "openzeppelin-solidity/contracts/metatx/BaseRelayRecipient.sol": { "ast": { "absolutePath": "openzeppelin-solidity/contracts/metatx/BaseRelayRecipient.sol", "exportedSymbols": { "BaseRelayRecipient": [ 482 ], "Context": [ 675 ] }, "id": 483, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 408, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:23:4" }, { "absolutePath": "openzeppelin-solidity/contracts/utils/Context.sol", "file": "../utils/Context.sol", "id": 409, "nodeType": "ImportDirective", "scope": 483, "sourceUnit": 676, "src": "58:30:4", "symbolAliases": [], "unitAlias": "" }, { "abstract": true, "baseContracts": [ { "baseName": { "id": 410, "name": "Context", "nodeType": "IdentifierPath", "referencedDeclaration": 675, "src": "183:7:4" }, "id": 411, "nodeType": "InheritanceSpecifier", "src": "183:7:4" } ], "contractDependencies": [ 675 ], "contractKind": "contract", "fullyImplemented": true, "id": 482, "linearizedBaseContracts": [ 482, 675 ], "name": "BaseRelayRecipient", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 413, "mutability": "immutable", "name": "_trustedForwarder", "nodeType": "VariableDeclaration", "scope": 482, "src": "197:35:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 412, "name": "address", "nodeType": "ElementaryTypeName", "src": "197:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "body": { "id": 422, "nodeType": "Block", "src": "277:53:4", "statements": [ { "expression": { "id": 420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 418, "name": "_trustedForwarder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "287:17:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 419, "name": "trustedForwarder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 415, "src": "307:16:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "287:36:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 421, "nodeType": "ExpressionStatement", "src": "287:36:4" } ] }, "id": 423, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 416, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 415, "mutability": "mutable", "name": "trustedForwarder", "nodeType": "VariableDeclaration", "scope": 423, "src": "251:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 414, "name": "address", "nodeType": "ElementaryTypeName", "src": "251:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "250:26:4" }, "returnParameters": { "id": 417, "nodeType": "ParameterList", "parameters": [], "src": "277:0:4" }, "scope": 482, "src": "239:91:4", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 434, "nodeType": "Block", "src": "417:54:4", "statements": [ { "expression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 430, "name": "forwarder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 425, "src": "434:9:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 431, "name": "_trustedForwarder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "447:17:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "434:30:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 429, "id": 433, "nodeType": "Return", "src": "427:37:4" } ] }, "functionSelector": "572b6c05", "id": 435, "implemented": true, "kind": "function", "modifiers": [], "name": "isTrustedForwarder", "nodeType": "FunctionDefinition", "parameters": { "id": 426, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 425, "mutability": "mutable", "name": "forwarder", "nodeType": "VariableDeclaration", "scope": 435, "src": "364:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 424, "name": "address", "nodeType": "ElementaryTypeName", "src": "364:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "363:19:4" }, "returnParameters": { "id": 429, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 428, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 435, "src": "411:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 427, "name": "bool", "nodeType": "ElementaryTypeName", "src": "411:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "410:6:4" }, "scope": 482, "src": "336:135:4", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "baseFunctions": [ 663 ], "body": { "id": 453, "nodeType": "Block", "src": "555:295:4", "statements": [ { "condition": { "arguments": [ { "expression": { "id": 442, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "588:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "588:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 441, "name": "isTrustedForwarder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 435, "src": "569:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 444, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "569:30:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 451, "nodeType": "Block", "src": "794:50:4", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 447, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "815:5:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_super$_BaseRelayRecipient_$482_$", "typeString": "type(contract super BaseRelayRecipient)" } }, "id": 448, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_msgSender", "nodeType": "MemberAccess", "referencedDeclaration": 663, "src": "815:16:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 449, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "815:18:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 440, "id": 450, "nodeType": "Return", "src": "808:25:4" } ] }, "id": 452, "nodeType": "IfStatement", "src": "565:279:4", "trueBody": { "id": 446, "nodeType": "Block", "src": "601:187:4", "statements": [ { "AST": { "nodeType": "YulBlock", "src": "718:60:4", "statements": [ { "nodeType": "YulAssignment", "src": "720:56:4", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "734:2:4", "type": "", "value": "96" }, { "arguments": [ { "arguments": [ { "arguments": [], "functionName": { "name": "calldatasize", "nodeType": "YulIdentifier", "src": "755:12:4" }, "nodeType": "YulFunctionCall", "src": "755:14:4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "771:2:4", "type": "", "value": "20" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "751:3:4" }, "nodeType": "YulFunctionCall", "src": "751:23:4" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "738:12:4" }, "nodeType": "YulFunctionCall", "src": "738:37:4" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", "src": "730:3:4" }, "nodeType": "YulFunctionCall", "src": "730:46:4" }, "variableNames": [ { "name": "sender", "nodeType": "YulIdentifier", "src": "720:6:4" } ] } ] }, "evmVersion": "istanbul", "externalReferences": [ { "declaration": 439, "isOffset": false, "isSlot": false, "src": "720:6:4", "valueSize": 1 } ], "id": 445, "nodeType": "InlineAssembly", "src": "709:69:4" } ] } } ] }, "id": 454, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "overrides": { "id": 437, "nodeType": "OverrideSpecifier", "overrides": [], "src": "521:8:4" }, "parameters": { "id": 436, "nodeType": "ParameterList", "parameters": [], "src": "496:2:4" }, "returnParameters": { "id": 440, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 439, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "scope": 454, "src": "539:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 438, "name": "address", "nodeType": "ElementaryTypeName", "src": "539:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "538:16:4" }, "scope": 482, "src": "477:373:4", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "baseFunctions": [ 674 ], "body": { "id": 480, "nodeType": "Block", "src": "932:167:4", "statements": [ { "condition": { "arguments": [ { "expression": { "id": 461, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "965:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "965:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 460, "name": "isTrustedForwarder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 435, "src": "946:18:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 463, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "946:30:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 478, "nodeType": "Block", "src": "1045:48:4", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 474, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1066:5:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_super$_BaseRelayRecipient_$482_$", "typeString": "type(contract super BaseRelayRecipient)" } }, "id": 475, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_msgData", "nodeType": "MemberAccess", "referencedDeclaration": 674, "src": "1066:14:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes_calldata_ptr_$", "typeString": "function () view returns (bytes calldata)" } }, "id": 476, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1066:16:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "functionReturnParameters": 459, "id": 477, "nodeType": "Return", "src": "1059:23:4" } ] }, "id": 479, "nodeType": "IfStatement", "src": "942:151:4", "trueBody": { "id": 473, "nodeType": "Block", "src": "978:61:4", "statements": [ { "expression": { "baseExpression": { "expression": { "id": 464, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "999:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 465, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "src": "999:8:4", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "endExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "expression": { "id": 466, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1009:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 467, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "src": "1009:8:4", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "id": 468, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "src": "1009:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "3230", "id": 469, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1025:2:4", "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20" }, "value": "20" }, "src": "1009:18:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", "src": "999:29:4", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr_slice", "typeString": "bytes calldata slice" } }, "functionReturnParameters": 459, "id": 472, "nodeType": "Return", "src": "992:36:4" } ] } } ] }, "id": 481, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nodeType": "FunctionDefinition", "overrides": { "id": 456, "nodeType": "OverrideSpecifier", "overrides": [], "src": "898:8:4" }, "parameters": { "id": 455, "nodeType": "ParameterList", "parameters": [], "src": "873:2:4" }, "returnParameters": { "id": 459, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 458, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 481, "src": "916:14:4", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 457, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "916:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "915:16:4" }, "scope": 482, "src": "856:243:4", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], "scope": 483, "src": "143:958:4" } ], "src": "33:1069:4" }, "id": 4 }, "openzeppelin-solidity/contracts/metatx/MinimalForwarder.sol": { "ast": { "absolutePath": "openzeppelin-solidity/contracts/metatx/MinimalForwarder.sol", "exportedSymbols": { "ECDSA": [ 266 ], "EIP712": [ 406 ], "MinimalForwarder": [ 652 ] }, "id": 653, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 484, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:23:5" }, { "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", "file": "../cryptography/ECDSA.sol", "id": 485, "nodeType": "ImportDirective", "scope": 653, "sourceUnit": 267, "src": "58:35:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/drafts/EIP712.sol", "file": "../drafts/EIP712.sol", "id": 486, "nodeType": "ImportDirective", "scope": 653, "sourceUnit": 407, "src": "94:30:5", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 487, "name": "EIP712", "nodeType": "IdentifierPath", "referencedDeclaration": 406, "src": "198:6:5" }, "id": 488, "nodeType": "InheritanceSpecifier", "src": "198:6:5" } ], "contractDependencies": [ 406 ], "contractKind": "contract", "fullyImplemented": true, "id": 652, "linearizedBaseContracts": [ 652, 406 ], "name": "MinimalForwarder", "nodeType": "ContractDefinition", "nodes": [ { "id": 491, "libraryName": { "id": 489, "name": "ECDSA", "nodeType": "IdentifierPath", "referencedDeclaration": 266, "src": "217:5:5" }, "nodeType": "UsingForDirective", "src": "211:24:5", "typeName": { "id": 490, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "227:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } }, { "canonicalName": "MinimalForwarder.ForwardRequest", "id": 504, "members": [ { "constant": false, "id": 493, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "scope": 504, "src": "273:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 492, "name": "address", "nodeType": "ElementaryTypeName", "src": "273:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 495, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "scope": 504, "src": "295:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 494, "name": "address", "nodeType": "ElementaryTypeName", "src": "295:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 497, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "scope": 504, "src": "315:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 496, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "315:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 499, "mutability": "mutable", "name": "gas", "nodeType": "VariableDeclaration", "scope": 504, "src": "338:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 498, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "338:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 501, "mutability": "mutable", "name": "nonce", "nodeType": "VariableDeclaration", "scope": 504, "src": "359:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 500, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "359:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 503, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "scope": 504, "src": "382:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" }, "typeName": { "id": 502, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "382:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "name": "ForwardRequest", "nodeType": "StructDefinition", "scope": 652, "src": "241:158:5", "visibility": "public" }, { "constant": true, "id": 509, "mutability": "constant", "name": "TYPEHASH", "nodeType": "VariableDeclaration", "scope": 652, "src": "405:139:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 505, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "405:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": { "arguments": [ { "hexValue": "466f72776172645265717565737428616464726573732066726f6d2c6164647265737320746f2c75696e743235362076616c75652c75696e74323536206761732c75696e74323536206e6f6e63652c6279746573206461746129", "id": 507, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "451:92:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_dd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e48", "typeString": "literal_string \"ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)\"" }, "value": "ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_dd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e48", "typeString": "literal_string \"ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)\"" } ], "id": 506, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "441:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "441:103:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "private" }, { "constant": false, "id": 513, "mutability": "mutable", "name": "_nonces", "nodeType": "VariableDeclaration", "scope": 652, "src": "551:43:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 512, "keyType": { "id": 510, "name": "address", "nodeType": "ElementaryTypeName", "src": "559:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "551:27:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 511, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "570:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "visibility": "private" }, { "body": { "id": 520, "nodeType": "Block", "src": "650:2:5", "statements": [] }, "id": 521, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { "hexValue": "47534e763220466f72776172646572", "id": 516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "622:17:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c9c579ca0d993f7c2d25818372353ab1d6abb72d19f803687d19c75043ce92a", "typeString": "literal_string \"GSNv2 Forwarder\"" }, "value": "GSNv2 Forwarder" }, { "hexValue": "302e302e31", "id": 517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "641:7:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", "typeString": "literal_string \"0.0.1\"" }, "value": "0.0.1" } ], "id": 518, "modifierName": { "id": 515, "name": "EIP712", "nodeType": "IdentifierPath", "referencedDeclaration": 406, "src": "615:6:5" }, "nodeType": "ModifierInvocation", "src": "615:34:5" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 514, "nodeType": "ParameterList", "parameters": [], "src": "612:2:5" }, "returnParameters": { "id": 519, "nodeType": "ParameterList", "parameters": [], "src": "650:0:5" }, "scope": 652, "src": "601:51:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 532, "nodeType": "Block", "src": "720:37:5", "statements": [ { "expression": { "baseExpression": { "id": 528, "name": "_nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, "src": "737:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 530, "indexExpression": { "id": 529, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 523, "src": "745:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "737:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 527, "id": 531, "nodeType": "Return", "src": "730:20:5" } ] }, "functionSelector": "2d0335ab", "id": 533, "implemented": true, "kind": "function", "modifiers": [], "name": "getNonce", "nodeType": "FunctionDefinition", "parameters": { "id": 524, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 523, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "scope": 533, "src": "676:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 522, "name": "address", "nodeType": "ElementaryTypeName", "src": "676:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "675:14:5" }, "returnParameters": { "id": 527, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 526, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 533, "src": "711:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 525, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "711:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "710:9:5" }, "scope": 652, "src": "658:99:5", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 584, "nodeType": "Block", "src": "861:335:5", "statements": [ { "assignments": [ 544 ], "declarations": [ { "constant": false, "id": 544, "mutability": "mutable", "name": "signer", "nodeType": "VariableDeclaration", "scope": 584, "src": "871:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 543, "name": "address", "nodeType": "ElementaryTypeName", "src": "871:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 570, "initialValue": { "arguments": [ { "id": 568, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 538, "src": "1110:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } ], "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "id": 549, "name": "TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 509, "src": "939:8:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "expression": { "id": 550, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "961:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "from", "nodeType": "MemberAccess", "referencedDeclaration": 493, "src": "961:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "expression": { "id": 552, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "983:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "to", "nodeType": "MemberAccess", "referencedDeclaration": 495, "src": "983:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "expression": { "id": 554, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "1003:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": 497, "src": "1003:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 556, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "1026:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "gas", "nodeType": "MemberAccess", "referencedDeclaration": 499, "src": "1026:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 558, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "1047:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "nonce", "nodeType": "MemberAccess", "referencedDeclaration": 501, "src": "1047:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [ { "expression": { "id": 561, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "1080:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": 503, "src": "1080:8:5", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } ], "id": 560, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "1070:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 563, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1070:19:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "expression": { "id": 547, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "915:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 548, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "src": "915:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 564, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "915:184:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 546, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "905:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 565, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "905:195:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 545, "name": "_hashTypedDataV4", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 405, "src": "888:16:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (bytes32) view returns (bytes32)" } }, "id": 566, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "888:213:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "recover", "nodeType": "MemberAccess", "referencedDeclaration": 171, "src": "888:221:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_bytes32_$", "typeString": "function (bytes32,bytes memory) pure returns (address)" } }, "id": 569, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "888:232:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "871:249:5" }, { "expression": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 571, "name": "_nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, "src": "1137:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 574, "indexExpression": { "expression": { "id": 572, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "1145:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "from", "nodeType": "MemberAccess", "referencedDeclaration": 493, "src": "1145:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1137:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 575, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "1158:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "nonce", "nodeType": "MemberAccess", "referencedDeclaration": 501, "src": "1158:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1137:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 578, "name": "signer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 544, "src": "1171:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 579, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 536, "src": "1181:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "from", "nodeType": "MemberAccess", "referencedDeclaration": 493, "src": "1181:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1171:18:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1137:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 542, "id": 583, "nodeType": "Return", "src": "1130:59:5" } ] }, "functionSelector": "bf5d3bdb", "id": 585, "implemented": true, "kind": "function", "modifiers": [], "name": "verify", "nodeType": "FunctionDefinition", "parameters": { "id": 539, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 536, "mutability": "mutable", "name": "req", "nodeType": "VariableDeclaration", "scope": 585, "src": "779:27:5", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest" }, "typeName": { "id": 535, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 534, "name": "ForwardRequest", "nodeType": "IdentifierPath", "referencedDeclaration": 504, "src": "779:14:5" }, "referencedDeclaration": 504, "src": "779:14:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_storage_ptr", "typeString": "struct MinimalForwarder.ForwardRequest" } }, "visibility": "internal" }, { "constant": false, "id": 538, "mutability": "mutable", "name": "signature", "nodeType": "VariableDeclaration", "scope": 585, "src": "808:24:5", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 537, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "808:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "778:55:5" }, "returnParameters": { "id": 542, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 541, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 585, "src": "855:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 540, "name": "bool", "nodeType": "ElementaryTypeName", "src": "855:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "854:6:5" }, "scope": 652, "src": "763:433:5", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 650, "nodeType": "Block", "src": "1318:491:5", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 599, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1343:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, { "id": 600, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 590, "src": "1348:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } ], "id": 598, "name": "verify", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "1336:6:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_struct$_ForwardRequest_$504_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bool_$", "typeString": "function (struct MinimalForwarder.ForwardRequest calldata,bytes calldata) view returns (bool)" } }, "id": 601, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1336:22:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4d696e696d616c466f727761726465723a207369676e617475726520646f6573206e6f74206d617463682072657175657374", "id": 602, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1360:52:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae", "typeString": "literal_string \"MinimalForwarder: signature does not match request\"" }, "value": "MinimalForwarder: signature does not match request" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae", "typeString": "literal_string \"MinimalForwarder: signature does not match request\"" } ], "id": 597, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1328:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 603, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1328:85:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 604, "nodeType": "ExpressionStatement", "src": "1328:85:5" }, { "expression": { "id": 613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 605, "name": "_nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, "src": "1423:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 608, "indexExpression": { "expression": { "id": 606, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1431:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "from", "nodeType": "MemberAccess", "referencedDeclaration": 493, "src": "1431:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1423:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 609, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1443:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 610, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "nonce", "nodeType": "MemberAccess", "referencedDeclaration": 501, "src": "1443:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 611, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1455:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "1443:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1423:33:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 614, "nodeType": "ExpressionStatement", "src": "1423:33:5" }, { "assignments": [ 616, 618 ], "declarations": [ { "constant": false, "id": 616, "mutability": "mutable", "name": "success", "nodeType": "VariableDeclaration", "scope": 650, "src": "1527:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 615, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1527:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 618, "mutability": "mutable", "name": "returndata", "nodeType": "VariableDeclaration", "scope": 650, "src": "1541:23:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 617, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1541:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 635, "initialValue": { "arguments": [ { "arguments": [ { "expression": { "id": 629, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1629:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": 503, "src": "1629:8:5", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { "expression": { "id": 631, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1639:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "from", "nodeType": "MemberAccess", "referencedDeclaration": 493, "src": "1639:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 627, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1612:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 628, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "1612:16:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 633, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1612:36:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "expression": { "id": 619, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1568:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "to", "nodeType": "MemberAccess", "referencedDeclaration": 495, "src": "1568:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", "src": "1568:11:5", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": [ "gas", "value" ], "nodeType": "FunctionCallOptions", "options": [ { "expression": { "id": 622, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1585:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "gas", "nodeType": "MemberAccess", "referencedDeclaration": 499, "src": "1585:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 624, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1601:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": 497, "src": "1601:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "src": "1568:43:5", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 634, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1568:81:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "1526:123:5" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 637, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -7, "src": "1738:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 638, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1738:9:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 639, "name": "req", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 588, "src": "1750:3:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest calldata" } }, "id": 640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "gas", "nodeType": "MemberAccess", "referencedDeclaration": 499, "src": "1750:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "hexValue": "3633", "id": 641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1760:2:5", "typeDescriptions": { "typeIdentifier": "t_rational_63_by_1", "typeString": "int_const 63" }, "value": "63" }, "src": "1750:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1738:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 636, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1731:6:5", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 644, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1731:32:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 645, "nodeType": "ExpressionStatement", "src": "1731:32:5" }, { "expression": { "components": [ { "id": 646, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 616, "src": "1782:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 647, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 618, "src": "1791:10:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "id": 648, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1781:21:5", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "functionReturnParameters": 596, "id": 649, "nodeType": "Return", "src": "1774:28:5" } ] }, "functionSelector": "47153f82", "id": 651, "implemented": true, "kind": "function", "modifiers": [], "name": "execute", "nodeType": "FunctionDefinition", "parameters": { "id": 591, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 588, "mutability": "mutable", "name": "req", "nodeType": "VariableDeclaration", "scope": 651, "src": "1219:27:5", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_calldata_ptr", "typeString": "struct MinimalForwarder.ForwardRequest" }, "typeName": { "id": 587, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 586, "name": "ForwardRequest", "nodeType": "IdentifierPath", "referencedDeclaration": 504, "src": "1219:14:5" }, "referencedDeclaration": 504, "src": "1219:14:5", "typeDescriptions": { "typeIdentifier": "t_struct$_ForwardRequest_$504_storage_ptr", "typeString": "struct MinimalForwarder.ForwardRequest" } }, "visibility": "internal" }, { "constant": false, "id": 590, "mutability": "mutable", "name": "signature", "nodeType": "VariableDeclaration", "scope": 651, "src": "1248:24:5", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 589, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1248:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1218:55:5" }, "returnParameters": { "id": 596, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 593, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 651, "src": "1298:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 592, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1298:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 595, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 651, "src": "1304:12:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 594, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1304:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1297:20:5" }, "scope": 652, "src": "1202:607:5", "stateMutability": "payable", "virtual": false, "visibility": "public" } ], "scope": 653, "src": "169:1642:5" } ], "src": "33:1779:5" }, "id": 5 }, "openzeppelin-solidity/contracts/utils/Context.sol": { "ast": { "absolutePath": "openzeppelin-solidity/contracts/utils/Context.sol", "exportedSymbols": { "Context": [ 675 ] }, "id": 676, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 654, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:23:6" }, { "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 675, "linearizedBaseContracts": [ 675 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 662, "nodeType": "Block", "src": "652:34:6", "statements": [ { "expression": { "expression": { "id": 659, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "669:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "669:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 658, "id": 661, "nodeType": "Return", "src": "662:17:6" } ] }, "id": 663, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { "id": 655, "nodeType": "ParameterList", "parameters": [], "src": "609:2:6" }, "returnParameters": { "id": 658, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 657, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 663, "src": "643:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 656, "name": "address", "nodeType": "ElementaryTypeName", "src": "643:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "642:9:6" }, "scope": 675, "src": "590:96:6", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { "id": 673, "nodeType": "Block", "src": "759:165:6", "statements": [ { "expression": { "id": 668, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "769:4:6", "typeDescriptions": { "typeIdentifier": "t_contract$_Context_$675", "typeString": "contract Context" } }, "id": 669, "nodeType": "ExpressionStatement", "src": "769:4:6" }, { "expression": { "expression": { "id": 670, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "909:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "src": "909:8:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "functionReturnParameters": 667, "id": 672, "nodeType": "Return", "src": "902:15:6" } ] }, "id": 674, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nodeType": "FunctionDefinition", "parameters": { "id": 664, "nodeType": "ParameterList", "parameters": [], "src": "709:2:6" }, "returnParameters": { "id": 667, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 666, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 674, "src": "743:14:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 665, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "743:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "742:16:6" }, "scope": 675, "src": "692:232:6", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], "scope": 676, "src": "558:368:6" } ], "src": "33:894:6" }, "id": 6 } } } }