Skip to content

Instantly share code, notes, and snippets.

@AugustDev
Created January 26, 2023 13:44
Show Gist options
  • Save AugustDev/219daa97c3387791faac4faad0a4915b to your computer and use it in GitHub Desktop.
Save AugustDev/219daa97c3387791faac4faad0a4915b to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.13+commit.abaa5c0e.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
* the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
*
* _Available since v4.8._
*/
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata,
string memory errorMessage
) internal view returns (bytes memory) {
if (success) {
if (returndata.length == 0) {
// only check isContract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
require(isContract(target), "Address: call to non-contract");
}
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
/**
* @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason or using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function _revert(bytes memory returndata, string memory errorMessage) private pure {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_401": {
"entryPoint": null,
"id": 401,
"parameterSlots": 1,
"returnSlots": 0
},
"@_setURI_921": {
"entryPoint": 79,
"id": 921,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 570,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 645,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptr_fromMemory": {
"entryPoint": 696,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 431,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 283,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 462,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 516,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 824,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 377,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 777,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 330,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 303,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 308,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 298,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 293,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 313,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3764:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:10",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:10"
},
"nodeType": "YulFunctionCall",
"src": "67:9:10"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:10"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:10",
"type": ""
}
],
"src": "7:75:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:10"
},
"nodeType": "YulFunctionCall",
"src": "187:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:10"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:10"
},
"nodeType": "YulFunctionCall",
"src": "310:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:10"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:10"
},
"nodeType": "YulFunctionCall",
"src": "433:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:10"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "546:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "563:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "566:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "556:6:10"
},
"nodeType": "YulFunctionCall",
"src": "556:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "556:12:10"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "457:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "628:54:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "638:38:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "656:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "663:2:10",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "652:3:10"
},
"nodeType": "YulFunctionCall",
"src": "652:14:10"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "672:2:10",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "668:3:10"
},
"nodeType": "YulFunctionCall",
"src": "668:7:10"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "648:3:10"
},
"nodeType": "YulFunctionCall",
"src": "648:28:10"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "638:6:10"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "611:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "621:6:10",
"type": ""
}
],
"src": "580:102:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "716:152:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "733:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "736:77:10",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "726:6:10"
},
"nodeType": "YulFunctionCall",
"src": "726:88:10"
},
"nodeType": "YulExpressionStatement",
"src": "726:88:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "830:1:10",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "833:4:10",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "823:6:10"
},
"nodeType": "YulFunctionCall",
"src": "823:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "823:15:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "854:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "857:4:10",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "847:6:10"
},
"nodeType": "YulFunctionCall",
"src": "847:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "847:15:10"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "688:180:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "917:238:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "927:58:10",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "949:6:10"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "979:4:10"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "957:21:10"
},
"nodeType": "YulFunctionCall",
"src": "957:27:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "945:3:10"
},
"nodeType": "YulFunctionCall",
"src": "945:40:10"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "931:10:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1096:22:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1098:16:10"
},
"nodeType": "YulFunctionCall",
"src": "1098:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "1098:18:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1039:10:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1051:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1036:2:10"
},
"nodeType": "YulFunctionCall",
"src": "1036:34:10"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1075:10:10"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1087:6:10"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1072:2:10"
},
"nodeType": "YulFunctionCall",
"src": "1072:22:10"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1033:2:10"
},
"nodeType": "YulFunctionCall",
"src": "1033:62:10"
},
"nodeType": "YulIf",
"src": "1030:88:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1134:2:10",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1138:10:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1127:6:10"
},
"nodeType": "YulFunctionCall",
"src": "1127:22:10"
},
"nodeType": "YulExpressionStatement",
"src": "1127:22:10"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "903:6:10",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "911:4:10",
"type": ""
}
],
"src": "874:281:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1202:88:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1212:30:10",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1222:18:10"
},
"nodeType": "YulFunctionCall",
"src": "1222:20:10"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1212:6:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1271:6:10"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1279:4:10"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1251:19:10"
},
"nodeType": "YulFunctionCall",
"src": "1251:33:10"
},
"nodeType": "YulExpressionStatement",
"src": "1251:33:10"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1186:4:10",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1195:6:10",
"type": ""
}
],
"src": "1161:129:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:241:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1468:22:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1470:16:10"
},
"nodeType": "YulFunctionCall",
"src": "1470:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "1470:18:10"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1440:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1448:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1437:2:10"
},
"nodeType": "YulFunctionCall",
"src": "1437:30:10"
},
"nodeType": "YulIf",
"src": "1434:56:10"
},
{
"nodeType": "YulAssignment",
"src": "1500:37:10",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1530:6:10"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1508:21:10"
},
"nodeType": "YulFunctionCall",
"src": "1508:29:10"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1500:4:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1574:23:10",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1586:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1592:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1582:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1582:15:10"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1574:4:10"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1347:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1358:4:10",
"type": ""
}
],
"src": "1296:308:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1659:258:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1669:10:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1678:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1673:1:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1738:63:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1763:3:10"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1768:1:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1759:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1759:11:10"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1782:3:10"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1787:1:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1778:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1778:11:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1772:5:10"
},
"nodeType": "YulFunctionCall",
"src": "1772:18:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1752:6:10"
},
"nodeType": "YulFunctionCall",
"src": "1752:39:10"
},
"nodeType": "YulExpressionStatement",
"src": "1752:39:10"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1699:1:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1702:6:10"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1696:2:10"
},
"nodeType": "YulFunctionCall",
"src": "1696:13:10"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1710:19:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1712:15:10",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1721:1:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1724:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1717:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1717:10:10"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1712:1:10"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1692:3:10",
"statements": []
},
"src": "1688:113:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1835:76:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1885:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1890:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1881:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1881:16:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1899:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1874:6:10"
},
"nodeType": "YulFunctionCall",
"src": "1874:27:10"
},
"nodeType": "YulExpressionStatement",
"src": "1874:27:10"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1816:1:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1819:6:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1813:2:10"
},
"nodeType": "YulFunctionCall",
"src": "1813:13:10"
},
"nodeType": "YulIf",
"src": "1810:101:10"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1641:3:10",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1646:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1651:6:10",
"type": ""
}
],
"src": "1610:307:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2018:326:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2028:75:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2095:6:10"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2053:41:10"
},
"nodeType": "YulFunctionCall",
"src": "2053:49:10"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2037:15:10"
},
"nodeType": "YulFunctionCall",
"src": "2037:66:10"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2028:5:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2119:5:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2126:6:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2112:6:10"
},
"nodeType": "YulFunctionCall",
"src": "2112:21:10"
},
"nodeType": "YulExpressionStatement",
"src": "2112:21:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2142:27:10",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2157:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2164:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2153:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2153:16:10"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2146:3:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2207:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2209:77:10"
},
"nodeType": "YulFunctionCall",
"src": "2209:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "2209:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2188:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2193:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2184:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2184:16:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2202:3:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2181:2:10"
},
"nodeType": "YulFunctionCall",
"src": "2181:25:10"
},
"nodeType": "YulIf",
"src": "2178:112:10"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2321:3:10"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2326:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:10"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2299:21:10"
},
"nodeType": "YulFunctionCall",
"src": "2299:39:10"
},
"nodeType": "YulExpressionStatement",
"src": "2299:39:10"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1991:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1996:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2004:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2012:5:10",
"type": ""
}
],
"src": "1923:421:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2437:282:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2486:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2488:77:10"
},
"nodeType": "YulFunctionCall",
"src": "2488:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "2488:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2465:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2473:4:10",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2461:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2461:17:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2480:3:10"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2457:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2457:27:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2450:6:10"
},
"nodeType": "YulFunctionCall",
"src": "2450:35:10"
},
"nodeType": "YulIf",
"src": "2447:122:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2578:27:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2598:6:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2592:5:10"
},
"nodeType": "YulFunctionCall",
"src": "2592:13:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2582:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2614:99:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2686:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2694:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2682:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2682:17:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2701:6:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2709:3:10"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "2623:58:10"
},
"nodeType": "YulFunctionCall",
"src": "2623:90:10"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2614:5:10"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2415:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2423:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2431:5:10",
"type": ""
}
],
"src": "2364:355:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2812:437:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2858:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2860:77:10"
},
"nodeType": "YulFunctionCall",
"src": "2860:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "2860:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2833:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2842:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2829:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2829:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2854:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2825:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2825:32:10"
},
"nodeType": "YulIf",
"src": "2822:119:10"
},
{
"nodeType": "YulBlock",
"src": "2951:291:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2966:38:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2990:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3001:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2986:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2986:17:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2980:5:10"
},
"nodeType": "YulFunctionCall",
"src": "2980:24:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2970:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3051:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3053:77:10"
},
"nodeType": "YulFunctionCall",
"src": "3053:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "3053:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3023:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3031:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3020:2:10"
},
"nodeType": "YulFunctionCall",
"src": "3020:30:10"
},
"nodeType": "YulIf",
"src": "3017:117:10"
},
{
"nodeType": "YulAssignment",
"src": "3148:84:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3204:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3215:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3200:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3200:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3224:7:10"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3158:41:10"
},
"nodeType": "YulFunctionCall",
"src": "3158:74:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3148:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2782:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2793:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2805:6:10",
"type": ""
}
],
"src": "2725:524:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3283:152:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3300:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3303:77:10",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3293:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3293:88:10"
},
"nodeType": "YulExpressionStatement",
"src": "3293:88:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3397:1:10",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3400:4:10",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3390:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3390:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "3390:15:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3421:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3424:4:10",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3414:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3414:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "3414:15:10"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "3255:180:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3492:269:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3502:22:10",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3516:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3522:1:10",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "3512:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3512:12:10"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3502:6:10"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3533:38:10",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3563:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3569:1:10",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3559:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3559:12:10"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "3537:18:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3610:51:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3624:27:10",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3638:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3646:4:10",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3634:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3634:17:10"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3624:6:10"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "3590:18:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3583:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3583:26:10"
},
"nodeType": "YulIf",
"src": "3580:81:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3713:42:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "3727:16:10"
},
"nodeType": "YulFunctionCall",
"src": "3727:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "3727:18:10"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "3677:18:10"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3700:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3708:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3697:2:10"
},
"nodeType": "YulFunctionCall",
"src": "3697:14:10"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3674:2:10"
},
"nodeType": "YulFunctionCall",
"src": "3674:38:10"
},
"nodeType": "YulIf",
"src": "3671:84:10"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3476:4:10",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3485:6:10",
"type": ""
}
],
"src": "3441:320:10"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(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 abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 10,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b5060405162002ca038038062002ca08339818101604052810190620000379190620002b8565b62000048816200004f60201b60201c565b506200036d565b8060039080519060200190620000679291906200006b565b5050565b828054620000799062000338565b90600052602060002090601f0160209004810192826200009d5760008555620000e9565b82601f10620000b857805160ff1916838001178555620000e9565b82800160010185558215620000e9579182015b82811115620000e8578251825591602001919060010190620000cb565b5b509050620000f89190620000fc565b5090565b5b8082111562000117576000816000905550600101620000fd565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001848262000139565b810181811067ffffffffffffffff82111715620001a657620001a56200014a565b5b80604052505050565b6000620001bb6200011b565b9050620001c9828262000179565b919050565b600067ffffffffffffffff821115620001ec57620001eb6200014a565b5b620001f78262000139565b9050602081019050919050565b60005b838110156200022457808201518184015260208101905062000207565b8381111562000234576000848401525b50505050565b6000620002516200024b84620001ce565b620001af565b90508281526020810184848401111562000270576200026f62000134565b5b6200027d84828562000204565b509392505050565b600082601f8301126200029d576200029c6200012f565b5b8151620002af8482602086016200023a565b91505092915050565b600060208284031215620002d157620002d062000125565b5b600082015167ffffffffffffffff811115620002f257620002f16200012a565b5b620003008482850162000285565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200035157607f821691505b60208210810362000367576200036662000309565b5b50919050565b612923806200037d6000396000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c80634e1273f4116100715780634e1273f4146101b0578063704fe710146101e05780639abc832014610210578063a22cb4651461022e578063e985e9c51461024a578063f242432a1461027a576100b3565b8062fdd58e146100b857806301ffc9a7146100e8578063084e9e24146101185780630e89341c146101345780631f320331146101645780632eb2c2d614610194575b600080fd5b6100d260048036038101906100cd9190611573565b610296565b6040516100df91906115c2565b60405180910390f35b61010260048036038101906100fd9190611635565b61035e565b60405161010f919061167d565b60405180910390f35b610132600480360381019061012d91906117de565b610440565b005b61014e60048036038101906101499190611887565b610617565b60405161015b919061193c565b60405180910390f35b61017e6004803603810190610179919061195e565b610655565b60405161018b91906115c2565b60405180910390f35b6101ae60048036038101906101a99190611a66565b61067a565b005b6101ca60048036038101906101c59190611bf8565b61071b565b6040516101d79190611d2e565b60405180910390f35b6101fa60048036038101906101f59190611887565b610834565b604051610207919061193c565b60405180910390f35b6102186108d4565b604051610225919061193c565b60405180910390f35b61024860048036038101906102439190611d7c565b610962565b005b610264600480360381019061025f9190611dbc565b610978565b604051610271919061167d565b60405180910390f35b610294600480360381019061028f9190611dfc565b610a0c565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fd90611f05565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061042957507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610439575061043882610aad565b5b9050919050565b61045f8473ffffffffffffffffffffffffffffffffffffffff16610b17565b1561060f578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016104a5959493929190611f89565b6020604051808303816000875af19250505080156104e157506040513d601f19601f820116820180604052508101906104de9190611ff8565b60015b610586576104ed612032565b806308c379a0036105495750610501612054565b8061050c575061054b565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610540919061193c565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90612156565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461060d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610604906121e8565b60405180910390fd5b505b505050505050565b606060036001600084815260200190815260200160002060405160200161063f929190612307565b6040516020818303038152906040529050919050565b6000602052816000526040600020602052806000526040600020600091509150505481565b610682610b3a565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106c857506106c7856106c2610b3a565b610978565b5b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe9061239d565b60405180910390fd5b6107148585858585610b42565b5050505050565b60608151835114610761576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107589061242f565b60405180910390fd5b6000835167ffffffffffffffff81111561077e5761077d6116b3565b5b6040519080825280602002602001820160405280156107ac5781602001602082028036833780820191505090505b50905060005b8451811015610829576107f98582815181106107d1576107d061244f565b5b60200260200101518583815181106107ec576107eb61244f565b5b6020026020010151610296565b82828151811061080c5761080b61244f565b5b60200260200101818152505080610822906124ad565b90506107b2565b508091505092915050565b6001602052806000526040600020600091509050805461085390612237565b80601f016020809104026020016040519081016040528092919081815260200182805461087f90612237565b80156108cc5780601f106108a1576101008083540402835291602001916108cc565b820191906000526020600020905b8154815290600101906020018083116108af57829003601f168201915b505050505081565b600380546108e190612237565b80601f016020809104026020016040519081016040528092919081815260200182805461090d90612237565b801561095a5780601f1061092f5761010080835404028352916020019161095a565b820191906000526020600020905b81548152906001019060200180831161093d57829003601f168201915b505050505081565b61097461096d610b3a565b8383610e63565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610a14610b3a565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610a5a5750610a5985610a54610b3a565b610978565b5b610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9090612567565b60405180910390fd5b610aa68585858585610fcf565b5050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600033905090565b8151835114610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906125f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061268b565b60405180910390fd5b6000610bff610b3a565b9050610c0f81878787878761126a565b60005b8451811015610dc0576000858281518110610c3057610c2f61244f565b5b602002602001015190506000858381518110610c4f57610c4e61244f565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce79061271d565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610da5919061273d565b9250508190555050505080610db9906124ad565b9050610c12565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e37929190612793565b60405180910390a4610e4d818787878787611272565b610e5b81878787878761127a565b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec89061283c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610fc2919061167d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110359061268b565b60405180910390fd5b6000611048610b3a565b9050600061105585611451565b9050600061106285611451565b905061107283898985858961126a565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111009061271d565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111be919061273d565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a60405161123b92919061285c565b60405180910390a4611251848a8a86868a611272565b61125f848a8a8a8a8a610440565b505050505050505050565b505050505050565b505050505050565b6112998473ffffffffffffffffffffffffffffffffffffffff16610b17565b15611449578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016112df959493929190612885565b6020604051808303816000875af192505050801561131b57506040513d601f19601f820116820180604052508101906113189190611ff8565b60015b6113c057611327612032565b806308c379a003611383575061133b612054565b806113465750611385565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a919061193c565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790612156565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906121e8565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff8111156114705761146f6116b3565b5b60405190808252806020026020018201604052801561149e5781602001602082028036833780820191505090505b50905082816000815181106114b6576114b561244f565b5b60200260200101818152505080915050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061150a826114df565b9050919050565b61151a816114ff565b811461152557600080fd5b50565b60008135905061153781611511565b92915050565b6000819050919050565b6115508161153d565b811461155b57600080fd5b50565b60008135905061156d81611547565b92915050565b6000806040838503121561158a576115896114d5565b5b600061159885828601611528565b92505060206115a98582860161155e565b9150509250929050565b6115bc8161153d565b82525050565b60006020820190506115d760008301846115b3565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611612816115dd565b811461161d57600080fd5b50565b60008135905061162f81611609565b92915050565b60006020828403121561164b5761164a6114d5565b5b600061165984828501611620565b91505092915050565b60008115159050919050565b61167781611662565b82525050565b6000602082019050611692600083018461166e565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6116eb826116a2565b810181811067ffffffffffffffff8211171561170a576117096116b3565b5b80604052505050565b600061171d6114cb565b905061172982826116e2565b919050565b600067ffffffffffffffff821115611749576117486116b3565b5b611752826116a2565b9050602081019050919050565b82818337600083830152505050565b600061178161177c8461172e565b611713565b90508281526020810184848401111561179d5761179c61169d565b5b6117a884828561175f565b509392505050565b600082601f8301126117c5576117c4611698565b5b81356117d584826020860161176e565b91505092915050565b60008060008060008060c087890312156117fb576117fa6114d5565b5b600061180989828a01611528565b965050602061181a89828a01611528565b955050604061182b89828a01611528565b945050606061183c89828a0161155e565b935050608061184d89828a0161155e565b92505060a087013567ffffffffffffffff81111561186e5761186d6114da565b5b61187a89828a016117b0565b9150509295509295509295565b60006020828403121561189d5761189c6114d5565b5b60006118ab8482850161155e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118ee5780820151818401526020810190506118d3565b838111156118fd576000848401525b50505050565b600061190e826118b4565b61191881856118bf565b93506119288185602086016118d0565b611931816116a2565b840191505092915050565b600060208201905081810360008301526119568184611903565b905092915050565b60008060408385031215611975576119746114d5565b5b60006119838582860161155e565b925050602061199485828601611528565b9150509250929050565b600067ffffffffffffffff8211156119b9576119b86116b3565b5b602082029050602081019050919050565b600080fd5b60006119e26119dd8461199e565b611713565b90508083825260208201905060208402830185811115611a0557611a046119ca565b5b835b81811015611a2e5780611a1a888261155e565b845260208401935050602081019050611a07565b5050509392505050565b600082601f830112611a4d57611a4c611698565b5b8135611a5d8482602086016119cf565b91505092915050565b600080600080600060a08688031215611a8257611a816114d5565b5b6000611a9088828901611528565b9550506020611aa188828901611528565b945050604086013567ffffffffffffffff811115611ac257611ac16114da565b5b611ace88828901611a38565b935050606086013567ffffffffffffffff811115611aef57611aee6114da565b5b611afb88828901611a38565b925050608086013567ffffffffffffffff811115611b1c57611b1b6114da565b5b611b28888289016117b0565b9150509295509295909350565b600067ffffffffffffffff821115611b5057611b4f6116b3565b5b602082029050602081019050919050565b6000611b74611b6f84611b35565b611713565b90508083825260208201905060208402830185811115611b9757611b966119ca565b5b835b81811015611bc05780611bac8882611528565b845260208401935050602081019050611b99565b5050509392505050565b600082601f830112611bdf57611bde611698565b5b8135611bef848260208601611b61565b91505092915050565b60008060408385031215611c0f57611c0e6114d5565b5b600083013567ffffffffffffffff811115611c2d57611c2c6114da565b5b611c3985828601611bca565b925050602083013567ffffffffffffffff811115611c5a57611c596114da565b5b611c6685828601611a38565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ca58161153d565b82525050565b6000611cb78383611c9c565b60208301905092915050565b6000602082019050919050565b6000611cdb82611c70565b611ce58185611c7b565b9350611cf083611c8c565b8060005b83811015611d21578151611d088882611cab565b9750611d1383611cc3565b925050600181019050611cf4565b5085935050505092915050565b60006020820190508181036000830152611d488184611cd0565b905092915050565b611d5981611662565b8114611d6457600080fd5b50565b600081359050611d7681611d50565b92915050565b60008060408385031215611d9357611d926114d5565b5b6000611da185828601611528565b9250506020611db285828601611d67565b9150509250929050565b60008060408385031215611dd357611dd26114d5565b5b6000611de185828601611528565b9250506020611df285828601611528565b9150509250929050565b600080600080600060a08688031215611e1857611e176114d5565b5b6000611e2688828901611528565b9550506020611e3788828901611528565b9450506040611e488882890161155e565b9350506060611e598882890161155e565b925050608086013567ffffffffffffffff811115611e7a57611e796114da565b5b611e86888289016117b0565b9150509295509295909350565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000611eef602b836118bf565b9150611efa82611e93565b604082019050919050565b60006020820190508181036000830152611f1e81611ee2565b9050919050565b611f2e816114ff565b82525050565b600081519050919050565b600082825260208201905092915050565b6000611f5b82611f34565b611f658185611f3f565b9350611f758185602086016118d0565b611f7e816116a2565b840191505092915050565b600060a082019050611f9e6000830188611f25565b611fab6020830187611f25565b611fb860408301866115b3565b611fc560608301856115b3565b8181036080830152611fd78184611f50565b90509695505050505050565b600081519050611ff281611609565b92915050565b60006020828403121561200e5761200d6114d5565b5b600061201c84828501611fe3565b91505092915050565b60008160e01c9050919050565b600060033d11156120515760046000803e61204e600051612025565b90505b90565b600060443d106120e1576120666114cb565b60043d036004823e80513d602482011167ffffffffffffffff8211171561208e5750506120e1565b808201805167ffffffffffffffff8111156120ac57505050506120e1565b80602083010160043d0385018111156120c95750505050506120e1565b6120d8826020018501866116e2565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b60006121406034836118bf565b915061214b826120e4565b604082019050919050565b6000602082019050818103600083015261216f81612133565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006121d26028836118bf565b91506121dd82612176565b604082019050919050565b60006020820190508181036000830152612201816121c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061224f57607f821691505b60208210810361226257612261612208565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461229581612237565b61229f8186612268565b945060018216600081146122ba57600181146122cb576122fe565b60ff198316865281860193506122fe565b6122d485612273565b60005b838110156122f6578154818901526001820191506020810190506122d7565b838801955050505b50505092915050565b60006123138285612288565b915061231f8284612288565b91508190509392505050565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b60006123876032836118bf565b91506123928261232b565b604082019050919050565b600060208201905081810360008301526123b68161237a565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b60006124196029836118bf565b9150612424826123bd565b604082019050919050565b600060208201905081810360008301526124488161240c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124b88261153d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124ea576124e961247e565b5b600182019050919050565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b60006125516029836118bf565b915061255c826124f5565b604082019050919050565b6000602082019050818103600083015261258081612544565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b60006125e36028836118bf565b91506125ee82612587565b604082019050919050565b60006020820190508181036000830152612612816125d6565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126756025836118bf565b915061268082612619565b604082019050919050565b600060208201905081810360008301526126a481612668565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000612707602a836118bf565b9150612712826126ab565b604082019050919050565b60006020820190508181036000830152612736816126fa565b9050919050565b60006127488261153d565b91506127538361153d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127885761278761247e565b5b828201905092915050565b600060408201905081810360008301526127ad8185611cd0565b905081810360208301526127c18184611cd0565b90509392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006128266029836118bf565b9150612831826127ca565b604082019050919050565b6000602082019050818103600083015261285581612819565b9050919050565b600060408201905061287160008301856115b3565b61287e60208301846115b3565b9392505050565b600060a08201905061289a6000830188611f25565b6128a76020830187611f25565b81810360408301526128b98186611cd0565b905081810360608301526128cd8185611cd0565b905081810360808301526128e18184611f50565b9050969550505050505056fea264697066735822122099bf5e9438ad2e51a5a95f86105894ef65101b1958f469b3361c22e341a34b0264736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2CA0 CODESIZE SUB DUP1 PUSH3 0x2CA0 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x2B8 JUMP JUMPDEST PUSH3 0x48 DUP2 PUSH3 0x4F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x36D JUMP JUMPDEST DUP1 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x67 SWAP3 SWAP2 SWAP1 PUSH3 0x6B JUMP JUMPDEST POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x79 SWAP1 PUSH3 0x338 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE9 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB8 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xCB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0xF8 SWAP2 SWAP1 PUSH3 0xFC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x117 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0xFD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x184 DUP3 PUSH3 0x139 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x1A6 JUMPI PUSH3 0x1A5 PUSH3 0x14A JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1BB PUSH3 0x11B JUMP JUMPDEST SWAP1 POP PUSH3 0x1C9 DUP3 DUP3 PUSH3 0x179 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x1EC JUMPI PUSH3 0x1EB PUSH3 0x14A JUMP JUMPDEST JUMPDEST PUSH3 0x1F7 DUP3 PUSH3 0x139 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x224 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x207 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x234 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x251 PUSH3 0x24B DUP5 PUSH3 0x1CE JUMP JUMPDEST PUSH3 0x1AF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x270 JUMPI PUSH3 0x26F PUSH3 0x134 JUMP JUMPDEST JUMPDEST PUSH3 0x27D DUP5 DUP3 DUP6 PUSH3 0x204 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x29D JUMPI PUSH3 0x29C PUSH3 0x12F JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x2AF DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x23A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x2D1 JUMPI PUSH3 0x2D0 PUSH3 0x125 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x2F2 JUMPI PUSH3 0x2F1 PUSH3 0x12A JUMP JUMPDEST JUMPDEST PUSH3 0x300 DUP5 DUP3 DUP6 ADD PUSH3 0x285 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x351 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x367 JUMPI PUSH3 0x366 PUSH3 0x309 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2923 DUP1 PUSH3 0x37D 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 0xB3 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x704FE710 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x9ABC8320 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x27A JUMPI PUSH2 0xB3 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0xB8 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0x84E9E24 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x1F320331 EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x194 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCD SWAP2 SWAP1 PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDF SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x102 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFD SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x35E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x167D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x17DE JUMP JUMPDEST PUSH2 0x440 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x149 SWAP2 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH2 0x617 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15B SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x195E JUMP JUMPDEST PUSH2 0x655 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18B SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x1A66 JUMP JUMPDEST PUSH2 0x67A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0x1BF8 JUMP JUMPDEST PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D7 SWAP2 SWAP1 PUSH2 0x1D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F5 SWAP2 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH2 0x834 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x207 SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x218 PUSH2 0x8D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x243 SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x962 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x264 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x1DBC JUMP JUMPDEST PUSH2 0x978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x167D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0x1DFC JUMP JUMPDEST PUSH2 0xA0C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x306 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2FD SWAP1 PUSH2 0x1F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x429 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x439 JUMPI POP PUSH2 0x438 DUP3 PUSH2 0xAAD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45F DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB17 JUMP JUMPDEST ISZERO PUSH2 0x60F JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4A5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x4E1 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4DE SWAP2 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x586 JUMPI PUSH2 0x4ED PUSH2 0x2032 JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 SUB PUSH2 0x549 JUMPI POP PUSH2 0x501 PUSH2 0x2054 JUMP JUMPDEST DUP1 PUSH2 0x50C JUMPI POP PUSH2 0x54B JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x540 SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x57D SWAP1 PUSH2 0x2156 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x60D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x604 SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x63F SWAP3 SWAP2 SWAP1 PUSH2 0x2307 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH2 0x682 PUSH2 0xB3A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x6C8 JUMPI POP PUSH2 0x6C7 DUP6 PUSH2 0x6C2 PUSH2 0xB3A JUMP JUMPDEST PUSH2 0x978 JUMP JUMPDEST JUMPDEST PUSH2 0x707 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6FE SWAP1 PUSH2 0x239D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x714 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xB42 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x761 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x758 SWAP1 PUSH2 0x242F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x77E JUMPI PUSH2 0x77D PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x7AC JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x829 JUMPI PUSH2 0x7F9 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x7D1 JUMPI PUSH2 0x7D0 PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x7EC JUMPI PUSH2 0x7EB PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x296 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x80C JUMPI PUSH2 0x80B PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH2 0x822 SWAP1 PUSH2 0x24AD JUMP JUMPDEST SWAP1 POP PUSH2 0x7B2 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x853 SWAP1 PUSH2 0x2237 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 0x87F SWAP1 PUSH2 0x2237 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8CC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8A1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8CC 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 0x8AF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x8E1 SWAP1 PUSH2 0x2237 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 0x90D SWAP1 PUSH2 0x2237 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x95A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x92F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x95A 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 0x93D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x974 PUSH2 0x96D PUSH2 0xB3A JUMP JUMPDEST DUP4 DUP4 PUSH2 0xE63 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA14 PUSH2 0xB3A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xA5A JUMPI POP PUSH2 0xA59 DUP6 PUSH2 0xA54 PUSH2 0xB3A JUMP JUMPDEST PUSH2 0x978 JUMP JUMPDEST JUMPDEST PUSH2 0xA99 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA90 SWAP1 PUSH2 0x2567 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAA6 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xFCF JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0xB86 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB7D SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBEC SWAP1 PUSH2 0x268B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBFF PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP PUSH2 0xC0F DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x126A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xC30 JUMPI PUSH2 0xC2F PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xC4F JUMPI PUSH2 0xC4E PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE7 SWAP1 PUSH2 0x271D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDA5 SWAP2 SWAP1 PUSH2 0x273D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP DUP1 PUSH2 0xDB9 SWAP1 PUSH2 0x24AD JUMP JUMPDEST SWAP1 POP PUSH2 0xC12 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0xE37 SWAP3 SWAP2 SWAP1 PUSH2 0x2793 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0xE4D DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1272 JUMP JUMPDEST PUSH2 0xE5B DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x127A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xED1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC8 SWAP1 PUSH2 0x283C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xFC2 SWAP2 SWAP1 PUSH2 0x167D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x103E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1035 SWAP1 PUSH2 0x268B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1048 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1055 DUP6 PUSH2 0x1451 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1062 DUP6 PUSH2 0x1451 JUMP JUMPDEST SWAP1 POP PUSH2 0x1072 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x126A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP6 DUP2 LT ISZERO PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x271D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP6 DUP2 SUB PUSH1 0x0 DUP1 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP6 PUSH1 0x0 DUP1 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x11BE SWAP2 SWAP1 PUSH2 0x273D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x123B SWAP3 SWAP2 SWAP1 PUSH2 0x285C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1251 DUP5 DUP11 DUP11 DUP7 DUP7 DUP11 PUSH2 0x1272 JUMP JUMPDEST PUSH2 0x125F DUP5 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x440 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1299 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB17 JUMP JUMPDEST ISZERO PUSH2 0x1449 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12DF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2885 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1318 SWAP2 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x13C0 JUMPI PUSH2 0x1327 PUSH2 0x2032 JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 SUB PUSH2 0x1383 JUMPI POP PUSH2 0x133B PUSH2 0x2054 JUMP JUMPDEST DUP1 PUSH2 0x1346 JUMPI POP PUSH2 0x1385 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x137A SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13B7 SWAP1 PUSH2 0x2156 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1447 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1470 JUMPI PUSH2 0x146F PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x149E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x14B6 JUMPI PUSH2 0x14B5 PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x150A DUP3 PUSH2 0x14DF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x151A DUP2 PUSH2 0x14FF JUMP JUMPDEST DUP2 EQ PUSH2 0x1525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1537 DUP2 PUSH2 0x1511 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1550 DUP2 PUSH2 0x153D JUMP JUMPDEST DUP2 EQ PUSH2 0x155B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x156D DUP2 PUSH2 0x1547 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x158A JUMPI PUSH2 0x1589 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1598 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x15A9 DUP6 DUP3 DUP7 ADD PUSH2 0x155E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x15BC DUP2 PUSH2 0x153D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15D7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1612 DUP2 PUSH2 0x15DD JUMP JUMPDEST DUP2 EQ PUSH2 0x161D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x162F DUP2 PUSH2 0x1609 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164B JUMPI PUSH2 0x164A PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1659 DUP5 DUP3 DUP6 ADD PUSH2 0x1620 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1677 DUP2 PUSH2 0x1662 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x166E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x16EB DUP3 PUSH2 0x16A2 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x170A JUMPI PUSH2 0x1709 PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171D PUSH2 0x14CB JUMP JUMPDEST SWAP1 POP PUSH2 0x1729 DUP3 DUP3 PUSH2 0x16E2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1749 JUMPI PUSH2 0x1748 PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH2 0x1752 DUP3 PUSH2 0x16A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1781 PUSH2 0x177C DUP5 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x179D JUMPI PUSH2 0x179C PUSH2 0x169D JUMP JUMPDEST JUMPDEST PUSH2 0x17A8 DUP5 DUP3 DUP6 PUSH2 0x175F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17C5 JUMPI PUSH2 0x17C4 PUSH2 0x1698 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17D5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x176E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x17FB JUMPI PUSH2 0x17FA PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1809 DUP10 DUP3 DUP11 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x181A DUP10 DUP3 DUP11 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x182B DUP10 DUP3 DUP11 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x183C DUP10 DUP3 DUP11 ADD PUSH2 0x155E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x184D DUP10 DUP3 DUP11 ADD PUSH2 0x155E JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x186E JUMPI PUSH2 0x186D PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x187A DUP10 DUP3 DUP11 ADD PUSH2 0x17B0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x189D JUMPI PUSH2 0x189C PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18AB DUP5 DUP3 DUP6 ADD PUSH2 0x155E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x18EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x18FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x190E DUP3 PUSH2 0x18B4 JUMP JUMPDEST PUSH2 0x1918 DUP2 DUP6 PUSH2 0x18BF JUMP JUMPDEST SWAP4 POP PUSH2 0x1928 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18D0 JUMP JUMPDEST PUSH2 0x1931 DUP2 PUSH2 0x16A2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1956 DUP2 DUP5 PUSH2 0x1903 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1975 JUMPI PUSH2 0x1974 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1983 DUP6 DUP3 DUP7 ADD PUSH2 0x155E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1994 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x19B9 JUMPI PUSH2 0x19B8 PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x19E2 PUSH2 0x19DD DUP5 PUSH2 0x199E JUMP JUMPDEST PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1A05 JUMPI PUSH2 0x1A04 PUSH2 0x19CA JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A2E JUMPI DUP1 PUSH2 0x1A1A DUP9 DUP3 PUSH2 0x155E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1A07 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A4D JUMPI PUSH2 0x1A4C PUSH2 0x1698 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A5D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x19CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1A82 JUMPI PUSH2 0x1A81 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A90 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1AA1 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AC2 JUMPI PUSH2 0x1AC1 PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1ACE DUP9 DUP3 DUP10 ADD PUSH2 0x1A38 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AEF JUMPI PUSH2 0x1AEE PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1AFB DUP9 DUP3 DUP10 ADD PUSH2 0x1A38 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B1C JUMPI PUSH2 0x1B1B PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1B28 DUP9 DUP3 DUP10 ADD PUSH2 0x17B0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B50 JUMPI PUSH2 0x1B4F PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B74 PUSH2 0x1B6F DUP5 PUSH2 0x1B35 JUMP JUMPDEST PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1B97 JUMPI PUSH2 0x1B96 PUSH2 0x19CA JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC0 JUMPI DUP1 PUSH2 0x1BAC DUP9 DUP3 PUSH2 0x1528 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1B99 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BDF JUMPI PUSH2 0x1BDE PUSH2 0x1698 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BEF DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1B61 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C0F JUMPI PUSH2 0x1C0E PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C2D JUMPI PUSH2 0x1C2C PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1C39 DUP6 DUP3 DUP7 ADD PUSH2 0x1BCA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C5A JUMPI PUSH2 0x1C59 PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1C66 DUP6 DUP3 DUP7 ADD PUSH2 0x1A38 JUMP JUMPDEST SWAP2 POP 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 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CA5 DUP2 PUSH2 0x153D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CB7 DUP4 DUP4 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CDB DUP3 PUSH2 0x1C70 JUMP JUMPDEST PUSH2 0x1CE5 DUP2 DUP6 PUSH2 0x1C7B JUMP JUMPDEST SWAP4 POP PUSH2 0x1CF0 DUP4 PUSH2 0x1C8C JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D21 JUMPI DUP2 MLOAD PUSH2 0x1D08 DUP9 DUP3 PUSH2 0x1CAB JUMP JUMPDEST SWAP8 POP PUSH2 0x1D13 DUP4 PUSH2 0x1CC3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1CF4 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1D48 DUP2 DUP5 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D59 DUP2 PUSH2 0x1662 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D76 DUP2 PUSH2 0x1D50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D93 JUMPI PUSH2 0x1D92 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DA1 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1DB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DD3 JUMPI PUSH2 0x1DD2 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DE1 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1DF2 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1E18 JUMPI PUSH2 0x1E17 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E26 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1E37 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1E48 DUP9 DUP3 DUP10 ADD PUSH2 0x155E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1E59 DUP9 DUP3 DUP10 ADD PUSH2 0x155E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E7A JUMPI PUSH2 0x1E79 PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1E86 DUP9 DUP3 DUP10 ADD PUSH2 0x17B0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x455243313135353A2062616C616E636520717565727920666F7220746865207A PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EEF PUSH1 0x2B DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x1EFA DUP3 PUSH2 0x1E93 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F1E DUP2 PUSH2 0x1EE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F2E DUP2 PUSH2 0x14FF JUMP JUMPDEST DUP3 MSTORE POP 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 PUSH2 0x1F5B DUP3 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x1F65 DUP2 DUP6 PUSH2 0x1F3F JUMP JUMPDEST SWAP4 POP PUSH2 0x1F75 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18D0 JUMP JUMPDEST PUSH2 0x1F7E DUP2 PUSH2 0x16A2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F9E PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0x1FAB PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0x1FB8 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x1FC5 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x15B3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1FD7 DUP2 DUP5 PUSH2 0x1F50 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1FF2 DUP2 PUSH2 0x1609 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x200E JUMPI PUSH2 0x200D PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x201C DUP5 DUP3 DUP6 ADD PUSH2 0x1FE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 RETURNDATASIZE GT ISZERO PUSH2 0x2051 JUMPI PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x204E PUSH1 0x0 MLOAD PUSH2 0x2025 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT PUSH2 0x20E1 JUMPI PUSH2 0x2066 PUSH2 0x14CB JUMP JUMPDEST PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x208E JUMPI POP POP PUSH2 0x20E1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20AC JUMPI POP POP POP POP PUSH2 0x20E1 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD PUSH1 0x4 RETURNDATASIZE SUB DUP6 ADD DUP2 GT ISZERO PUSH2 0x20C9 JUMPI POP POP POP POP POP PUSH2 0x20E1 JUMP JUMPDEST PUSH2 0x20D8 DUP3 PUSH1 0x20 ADD DUP6 ADD DUP7 PUSH2 0x16E2 JUMP JUMPDEST DUP3 SWAP6 POP POP POP POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0x455243313135353A207472616E7366657220746F206E6F6E2045524331313535 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x526563656976657220696D706C656D656E746572000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2140 PUSH1 0x34 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x214B DUP3 PUSH2 0x20E4 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x216F DUP2 PUSH2 0x2133 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A204552433131353552656365697665722072656A65637465 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6420746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21D2 PUSH1 0x28 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x21DD DUP3 PUSH2 0x2176 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2201 DUP2 PUSH2 0x21C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x224F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2262 JUMPI PUSH2 0x2261 PUSH2 0x2208 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2295 DUP2 PUSH2 0x2237 JUMP JUMPDEST PUSH2 0x229F DUP2 DUP7 PUSH2 0x2268 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x22BA JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x22CB JUMPI PUSH2 0x22FE JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 DUP7 ADD SWAP4 POP PUSH2 0x22FE JUMP JUMPDEST PUSH2 0x22D4 DUP6 PUSH2 0x2273 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22F6 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x22D7 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2313 DUP3 DUP6 PUSH2 0x2288 JUMP JUMPDEST SWAP2 POP PUSH2 0x231F DUP3 DUP5 PUSH2 0x2288 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E736665722063616C6C6572206973206E6F7420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572206E6F7220617070726F7665640000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2387 PUSH1 0x32 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2392 DUP3 PUSH2 0x232B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x23B6 DUP2 PUSH2 0x237A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A206163636F756E747320616E6420696473206C656E677468 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x206D69736D617463680000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2419 PUSH1 0x29 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2424 DUP3 PUSH2 0x23BD JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2448 DUP2 PUSH2 0x240C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24B8 DUP3 PUSH2 0x153D JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x24EA JUMPI PUSH2 0x24E9 PUSH2 0x247E JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A2063616C6C6572206973206E6F74206F776E6572206E6F72 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20617070726F7665640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2551 PUSH1 0x29 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x255C DUP3 PUSH2 0x24F5 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2580 DUP2 PUSH2 0x2544 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A2069647320616E6420616D6F756E7473206C656E67746820 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25E3 PUSH1 0x28 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x25EE DUP3 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2612 DUP2 PUSH2 0x25D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2675 PUSH1 0x25 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2680 DUP3 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x26A4 DUP2 PUSH2 0x2668 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72207472616E7366657200000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2707 PUSH1 0x2A DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2712 DUP3 PUSH2 0x26AB JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2736 DUP2 PUSH2 0x26FA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2748 DUP3 PUSH2 0x153D JUMP JUMPDEST SWAP2 POP PUSH2 0x2753 DUP4 PUSH2 0x153D JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2788 JUMPI PUSH2 0x2787 PUSH2 0x247E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x27AD DUP2 DUP6 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x27C1 DUP2 DUP5 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x455243313135353A2073657474696E6720617070726F76616C20737461747573 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20666F722073656C660000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2826 PUSH1 0x29 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2831 DUP3 PUSH2 0x27CA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2855 DUP2 PUSH2 0x2819 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2871 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x287E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x289A PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0x28A7 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1F25 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x28B9 DUP2 DUP7 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x28CD DUP2 DUP6 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x28E1 DUP2 DUP5 PUSH2 0x1F50 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP10 0xBF 0x5E SWAP5 CODESIZE 0xAD 0x2E MLOAD 0xA5 0xA9 0x5F DUP7 LT PC SWAP5 0xEF PUSH6 0x101B1958F469 0xB3 CALLDATASIZE SHR 0x22 0xE3 COINBASE LOG3 0x4B MUL PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ",
"sourceMap": "539:15481:2:-:0;;;1131:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1173:13;1181:4;1173:7;;;:13;;:::i;:::-;1131:62;539:15481;;8698:89;8774:6;8764:7;:16;;;;;;;;;;;;:::i;:::-;;8698:89;:::o;539:15481::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:10:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:307::-;1678:1;1688:113;1702:6;1699:1;1696:13;1688:113;;;1787:1;1782:3;1778:11;1772:18;1768:1;1763:3;1759:11;1752:39;1724:2;1721:1;1717:10;1712:15;;1688:113;;;1819:6;1816:1;1813:13;1810:101;;;1899:1;1890:6;1885:3;1881:16;1874:27;1810:101;1659:258;1610:307;;;:::o;1923:421::-;2012:5;2037:66;2053:49;2095:6;2053:49;:::i;:::-;2037:66;:::i;:::-;2028:75;;2126:6;2119:5;2112:21;2164:4;2157:5;2153:16;2202:3;2193:6;2188:3;2184:16;2181:25;2178:112;;;2209:79;;:::i;:::-;2178:112;2299:39;2331:6;2326:3;2321;2299:39;:::i;:::-;2018:326;1923:421;;;;;:::o;2364:355::-;2431:5;2480:3;2473:4;2465:6;2461:17;2457:27;2447:122;;2488:79;;:::i;:::-;2447:122;2598:6;2592:13;2623:90;2709:3;2701:6;2694:4;2686:6;2682:17;2623:90;:::i;:::-;2614:99;;2437:282;2364:355;;;;:::o;2725:524::-;2805:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:119;;;2860:79;;:::i;:::-;2822:119;3001:1;2990:9;2986:17;2980:24;3031:18;3023:6;3020:30;3017:117;;;3053:79;;:::i;:::-;3017:117;3158:74;3224:7;3215:6;3204:9;3200:22;3158:74;:::i;:::-;3148:84;;2951:291;2725:524;;;;:::o;3255:180::-;3303:77;3300:1;3293:88;3400:4;3397:1;3390:15;3424:4;3421:1;3414:15;3441:320;3485:6;3522:1;3516:4;3512:12;3502:22;;3569:1;3563:4;3559:12;3590:18;3580:81;;3646:4;3638:6;3634:17;3624:27;;3580:81;3708:2;3700:6;3697:14;3677:18;3674:38;3671:84;;3727:18;;:::i;:::-;3671:84;3492:269;3441:320;;;:::o;539:15481:2:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_afterTokenTransfer_1207": {
"entryPoint": 4722,
"id": 1207,
"parameterSlots": 6,
"returnSlots": 0
},
"@_asSingletonArray_1363": {
"entryPoint": 5201,
"id": 1363,
"parameterSlots": 1,
"returnSlots": 1
},
"@_beforeTokenTransfer_1188": {
"entryPoint": 4714,
"id": 1188,
"parameterSlots": 6,
"returnSlots": 0
},
"@_doSafeBatchTransferAcceptanceCheck_1335": {
"entryPoint": 4730,
"id": 1335,
"parameterSlots": 6,
"returnSlots": 0
},
"@_doSafeTransferAcceptanceCheck_1270": {
"entryPoint": 1088,
"id": 1270,
"parameterSlots": 6,
"returnSlots": 0
},
"@_msgSender_341": {
"entryPoint": 2874,
"id": 341,
"parameterSlots": 0,
"returnSlots": 1
},
"@_safeBatchTransferFrom_910": {
"entryPoint": 2882,
"id": 910,
"parameterSlots": 5,
"returnSlots": 0
},
"@_safeTransferFrom_775": {
"entryPoint": 4047,
"id": 775,
"parameterSlots": 5,
"returnSlots": 0
},
"@_setApprovalForAll_1169": {
"entryPoint": 3683,
"id": 1169,
"parameterSlots": 3,
"returnSlots": 0
},
"@balanceOfBatch_545": {
"entryPoint": 1819,
"id": 545,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_481": {
"entryPoint": 662,
"id": 481,
"parameterSlots": 2,
"returnSlots": 1
},
"@balances_378": {
"entryPoint": 1621,
"id": 378,
"parameterSlots": 0,
"returnSlots": 0
},
"@baseUri_390": {
"entryPoint": 2260,
"id": 390,
"parameterSlots": 0,
"returnSlots": 0
},
"@cids_382": {
"entryPoint": 2100,
"id": 382,
"parameterSlots": 0,
"returnSlots": 0
},
"@isApprovedForAll_580": {
"entryPoint": 2424,
"id": 580,
"parameterSlots": 2,
"returnSlots": 1
},
"@isContract_17": {
"entryPoint": 2839,
"id": 17,
"parameterSlots": 1,
"returnSlots": 1
},
"@safeBatchTransferFrom_658": {
"entryPoint": 1658,
"id": 658,
"parameterSlots": 5,
"returnSlots": 0
},
"@safeTransferFrom_618": {
"entryPoint": 2572,
"id": 618,
"parameterSlots": 5,
"returnSlots": 0
},
"@setApprovalForAll_562": {
"entryPoint": 2402,
"id": 562,
"parameterSlots": 2,
"returnSlots": 0
},
"@supportsInterface_1387": {
"entryPoint": 2733,
"id": 1387,
"parameterSlots": 1,
"returnSlots": 1
},
"@supportsInterface_432": {
"entryPoint": 862,
"id": 432,
"parameterSlots": 1,
"returnSlots": 1
},
"@uri_453": {
"entryPoint": 1559,
"id": 453,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 7009,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 6607,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_bytes_memory_ptr": {
"entryPoint": 5998,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 5416,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 7114,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 6712,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool": {
"entryPoint": 7527,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4": {
"entryPoint": 5664,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4_fromMemory": {
"entryPoint": 8163,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes_memory_ptr": {
"entryPoint": 6064,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 5470,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 7612,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": {
"entryPoint": 6110,
"id": null,
"parameterSlots": 2,
"returnSlots": 6
},
"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": {
"entryPoint": 6758,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": {
"entryPoint": 7676,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_tuple_t_addresst_bool": {
"entryPoint": 7548,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 5491,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 7160,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bytes4": {
"entryPoint": 5685,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes4_fromMemory": {
"entryPoint": 8184,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 6279,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_address": {
"entryPoint": 6494,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
"entryPoint": 7339,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 7973,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 7376,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 5742,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 8016,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6403,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 8840,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack": {
"entryPoint": 8499,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack": {
"entryPoint": 8645,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack": {
"entryPoint": 7906,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 9540,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 9832,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack": {
"entryPoint": 9082,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf_to_t_string_memory_ptr_fromStack": {
"entryPoint": 9978,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack": {
"entryPoint": 10265,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack": {
"entryPoint": 9228,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack": {
"entryPoint": 9686,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 7324,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 5555,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 8967,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 10373,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 8073,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 7470,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 10131,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 5757,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6460,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 8534,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 8680,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 7941,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 9575,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 9867,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 9117,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 10013,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 10300,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 9263,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 9721,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 5570,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 10332,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 5907,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 5323,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 6965,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 6558,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_bytes_memory_ptr": {
"entryPoint": 5934,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 7308,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 8819,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 7280,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 7988,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 6324,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 7363,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 7291,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 7999,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 6335,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 8808,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 10045,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 5375,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 5730,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes4": {
"entryPoint": 5597,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 5343,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 5437,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 5983,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 6352,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 8759,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 5858,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 9389,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 9342,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 8712,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 9295,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 5811,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"return_data_selector": {
"entryPoint": 8242,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 5784,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 6602,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 5789,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 5338,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 5333,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 5794,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_right_224_unsigned": {
"entryPoint": 8229,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed": {
"entryPoint": 8420,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503": {
"entryPoint": 8566,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9": {
"entryPoint": 7827,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a": {
"entryPoint": 9461,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d": {
"entryPoint": 9753,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686": {
"entryPoint": 9003,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf": {
"entryPoint": 9899,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2": {
"entryPoint": 10186,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5": {
"entryPoint": 9149,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807": {
"entryPoint": 9607,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"try_decode_error_message": {
"entryPoint": 8276,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 5393,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 7504,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes4": {
"entryPoint": 5641,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 5447,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:36951:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:10",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:10"
},
"nodeType": "YulFunctionCall",
"src": "67:9:10"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:10"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:10",
"type": ""
}
],
"src": "7:75:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:10"
},
"nodeType": "YulFunctionCall",
"src": "187:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:10"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:10"
},
"nodeType": "YulFunctionCall",
"src": "310:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:10"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:10",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:10"
},
"nodeType": "YulFunctionCall",
"src": "400:54:10"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:10"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:10",
"type": ""
}
],
"src": "334:126:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:10"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:10"
},
"nodeType": "YulFunctionCall",
"src": "532:24:10"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:10"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:10",
"type": ""
}
],
"src": "466:96:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:10"
},
"nodeType": "YulFunctionCall",
"src": "670:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:10"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:10"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:10"
},
"nodeType": "YulFunctionCall",
"src": "641:24:10"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:10"
},
"nodeType": "YulFunctionCall",
"src": "631:35:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:10"
},
"nodeType": "YulFunctionCall",
"src": "624:43:10"
},
"nodeType": "YulIf",
"src": "621:63:10"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:10",
"type": ""
}
],
"src": "568:122:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "748:87:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "758:29:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "780:6:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "767:12:10"
},
"nodeType": "YulFunctionCall",
"src": "767:20:10"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "823:5:10"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "796:26:10"
},
"nodeType": "YulFunctionCall",
"src": "796:33:10"
},
"nodeType": "YulExpressionStatement",
"src": "796:33:10"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "726:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "734:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "742:5:10",
"type": ""
}
],
"src": "696:139:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "886:32:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "896:16:10",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "907:5:10"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "896:7:10"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "868:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "878:7:10",
"type": ""
}
],
"src": "841:77:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "967:79:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1024:16:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1033:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1036:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1026:6:10"
},
"nodeType": "YulFunctionCall",
"src": "1026:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "1026:12:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "990:5:10"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1015:5:10"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "997:17:10"
},
"nodeType": "YulFunctionCall",
"src": "997:24:10"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "987:2:10"
},
"nodeType": "YulFunctionCall",
"src": "987:35:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "980:6:10"
},
"nodeType": "YulFunctionCall",
"src": "980:43:10"
},
"nodeType": "YulIf",
"src": "977:63:10"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "960:5:10",
"type": ""
}
],
"src": "924:122:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1104:87:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1114:29:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1136:6:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1123:12:10"
},
"nodeType": "YulFunctionCall",
"src": "1123:20:10"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1114:5:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1179:5:10"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1152:26:10"
},
"nodeType": "YulFunctionCall",
"src": "1152:33:10"
},
"nodeType": "YulExpressionStatement",
"src": "1152:33:10"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1082:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1090:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1098:5:10",
"type": ""
}
],
"src": "1052:139:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1280:391:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1326:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1328:77:10"
},
"nodeType": "YulFunctionCall",
"src": "1328:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "1328:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1301:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1310:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1297:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1297:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1322:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1293:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1293:32:10"
},
"nodeType": "YulIf",
"src": "1290:119:10"
},
{
"nodeType": "YulBlock",
"src": "1419:117:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1434:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1448:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1438:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1463:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1498:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1509:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1494:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1494:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1518:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1473:20:10"
},
"nodeType": "YulFunctionCall",
"src": "1473:53:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1463:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1546:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1561:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1575:2:10",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1565:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1591:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1626:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1637:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1622:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1622:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1646:7:10"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1601:20:10"
},
"nodeType": "YulFunctionCall",
"src": "1601:53:10"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1591:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1242:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1253:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1265:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1273:6:10",
"type": ""
}
],
"src": "1197:474:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1742:53:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1759:3:10"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1782:5:10"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1764:17:10"
},
"nodeType": "YulFunctionCall",
"src": "1764:24:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1752:6:10"
},
"nodeType": "YulFunctionCall",
"src": "1752:37:10"
},
"nodeType": "YulExpressionStatement",
"src": "1752:37:10"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1730:5:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1737:3:10",
"type": ""
}
],
"src": "1677:118:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1899:124:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1909:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1921:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1932:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1917:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1917:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1909:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1989:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2002:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2013:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1998:3:10"
},
"nodeType": "YulFunctionCall",
"src": "1998:17:10"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1945:43:10"
},
"nodeType": "YulFunctionCall",
"src": "1945:71:10"
},
"nodeType": "YulExpressionStatement",
"src": "1945:71:10"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1871:9:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1883:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1894:4:10",
"type": ""
}
],
"src": "1801:222:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2073:105:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2083:89:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2098:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2105:66:10",
"type": "",
"value": "0xffffffff00000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2094:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2094:78:10"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2083:7:10"
}
]
}
]
},
"name": "cleanup_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2055:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2065:7:10",
"type": ""
}
],
"src": "2029:149:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2226:78:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2282:16:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2291:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2294:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2284:6:10"
},
"nodeType": "YulFunctionCall",
"src": "2284:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "2284:12:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2249:5:10"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2273:5:10"
}
],
"functionName": {
"name": "cleanup_t_bytes4",
"nodeType": "YulIdentifier",
"src": "2256:16:10"
},
"nodeType": "YulFunctionCall",
"src": "2256:23:10"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2246:2:10"
},
"nodeType": "YulFunctionCall",
"src": "2246:34:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2239:6:10"
},
"nodeType": "YulFunctionCall",
"src": "2239:42:10"
},
"nodeType": "YulIf",
"src": "2236:62:10"
}
]
},
"name": "validator_revert_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2219:5:10",
"type": ""
}
],
"src": "2184:120:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2361:86:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2371:29:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2393:6:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2380:12:10"
},
"nodeType": "YulFunctionCall",
"src": "2380:20:10"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2371:5:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2435:5:10"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "2409:25:10"
},
"nodeType": "YulFunctionCall",
"src": "2409:32:10"
},
"nodeType": "YulExpressionStatement",
"src": "2409:32:10"
}
]
},
"name": "abi_decode_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2339:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2347:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2355:5:10",
"type": ""
}
],
"src": "2310:137:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2518:262:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2564:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2566:77:10"
},
"nodeType": "YulFunctionCall",
"src": "2566:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "2566:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2539:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2548:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2535:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2535:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2560:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2531:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2531:32:10"
},
"nodeType": "YulIf",
"src": "2528:119:10"
},
{
"nodeType": "YulBlock",
"src": "2657:116:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2672:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2686:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2676:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2701:62:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2735:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2746:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2731:3:10"
},
"nodeType": "YulFunctionCall",
"src": "2731:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2755:7:10"
}
],
"functionName": {
"name": "abi_decode_t_bytes4",
"nodeType": "YulIdentifier",
"src": "2711:19:10"
},
"nodeType": "YulFunctionCall",
"src": "2711:52:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2701:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2488:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2499:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2511:6:10",
"type": ""
}
],
"src": "2453:327:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2828:48:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2838:32:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2863:5:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2856:6:10"
},
"nodeType": "YulFunctionCall",
"src": "2856:13:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2849:6:10"
},
"nodeType": "YulFunctionCall",
"src": "2849:21:10"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2838:7:10"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2810:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2820:7:10",
"type": ""
}
],
"src": "2786:90:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2941:50:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2958:3:10"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2978:5:10"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "2963:14:10"
},
"nodeType": "YulFunctionCall",
"src": "2963:21:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2951:6:10"
},
"nodeType": "YulFunctionCall",
"src": "2951:34:10"
},
"nodeType": "YulExpressionStatement",
"src": "2951:34:10"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2929:5:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2936:3:10",
"type": ""
}
],
"src": "2882:109:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3089:118:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3099:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3111:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3122:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3107:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3107:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3099:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3173:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3186:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3197:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3182:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3182:17:10"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "3135:37:10"
},
"nodeType": "YulFunctionCall",
"src": "3135:65:10"
},
"nodeType": "YulExpressionStatement",
"src": "3135:65:10"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3061:9:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3073:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3084:4:10",
"type": ""
}
],
"src": "2997:210:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3302:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3319:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3322:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3312:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3312:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "3312:12:10"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "3213:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3425:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3442:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3445:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3435:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3435:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "3435:12:10"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "3336:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3507:54:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3517:38:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3535:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3542:2:10",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3531:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3531:14:10"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3551:2:10",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3547:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3547:7:10"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3527:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3527:28:10"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3517:6:10"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3490:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3500:6:10",
"type": ""
}
],
"src": "3459:102:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3595:152:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3612:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3615:77:10",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3605:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3605:88:10"
},
"nodeType": "YulExpressionStatement",
"src": "3605:88:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3709:1:10",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3712:4:10",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3702:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3702:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "3702:15:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3733:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3736:4:10",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3726:6:10"
},
"nodeType": "YulFunctionCall",
"src": "3726:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "3726:15:10"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3567:180:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3796:238:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3806:58:10",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3828:6:10"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3858:4:10"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3836:21:10"
},
"nodeType": "YulFunctionCall",
"src": "3836:27:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3824:3:10"
},
"nodeType": "YulFunctionCall",
"src": "3824:40:10"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "3810:10:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3975:22:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "3977:16:10"
},
"nodeType": "YulFunctionCall",
"src": "3977:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "3977:18:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3918:10:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3930:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3915:2:10"
},
"nodeType": "YulFunctionCall",
"src": "3915:34:10"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3954:10:10"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3966:6:10"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3951:2:10"
},
"nodeType": "YulFunctionCall",
"src": "3951:22:10"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3912:2:10"
},
"nodeType": "YulFunctionCall",
"src": "3912:62:10"
},
"nodeType": "YulIf",
"src": "3909:88:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4013:2:10",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4017:10:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4006:6:10"
},
"nodeType": "YulFunctionCall",
"src": "4006:22:10"
},
"nodeType": "YulExpressionStatement",
"src": "4006:22:10"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3782:6:10",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3790:4:10",
"type": ""
}
],
"src": "3753:281:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4081:88:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4091:30:10",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "4101:18:10"
},
"nodeType": "YulFunctionCall",
"src": "4101:20:10"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4091:6:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4150:6:10"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4158:4:10"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "4130:19:10"
},
"nodeType": "YulFunctionCall",
"src": "4130:33:10"
},
"nodeType": "YulExpressionStatement",
"src": "4130:33:10"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4065:4:10",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4074:6:10",
"type": ""
}
],
"src": "4040:129:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4241:241:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4346:22:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4348:16:10"
},
"nodeType": "YulFunctionCall",
"src": "4348:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "4348:18:10"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4318:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4326:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4315:2:10"
},
"nodeType": "YulFunctionCall",
"src": "4315:30:10"
},
"nodeType": "YulIf",
"src": "4312:56:10"
},
{
"nodeType": "YulAssignment",
"src": "4378:37:10",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4408:6:10"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4386:21:10"
},
"nodeType": "YulFunctionCall",
"src": "4386:29:10"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4378:4:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4452:23:10",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4464:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4470:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4460:3:10"
},
"nodeType": "YulFunctionCall",
"src": "4460:15:10"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4452:4:10"
}
]
}
]
},
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4225:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4236:4:10",
"type": ""
}
],
"src": "4175:307:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4539:103:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4562:3:10"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4567:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4572:6:10"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "4549:12:10"
},
"nodeType": "YulFunctionCall",
"src": "4549:30:10"
},
"nodeType": "YulExpressionStatement",
"src": "4549:30:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4620:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4625:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4616:3:10"
},
"nodeType": "YulFunctionCall",
"src": "4616:16:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4634:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4609:6:10"
},
"nodeType": "YulFunctionCall",
"src": "4609:27:10"
},
"nodeType": "YulExpressionStatement",
"src": "4609:27:10"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4521:3:10",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4526:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4531:6:10",
"type": ""
}
],
"src": "4488:154:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4731:327:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4741:74:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4807:6:10"
}
],
"functionName": {
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4766:40:10"
},
"nodeType": "YulFunctionCall",
"src": "4766:48:10"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "4750:15:10"
},
"nodeType": "YulFunctionCall",
"src": "4750:65:10"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4741:5:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4831:5:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4838:6:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4824:6:10"
},
"nodeType": "YulFunctionCall",
"src": "4824:21:10"
},
"nodeType": "YulExpressionStatement",
"src": "4824:21:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4854:27:10",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4869:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4876:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4865:3:10"
},
"nodeType": "YulFunctionCall",
"src": "4865:16:10"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4858:3:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4919:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "4921:77:10"
},
"nodeType": "YulFunctionCall",
"src": "4921:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "4921:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4900:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4905:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4896:3:10"
},
"nodeType": "YulFunctionCall",
"src": "4896:16:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4914:3:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4893:2:10"
},
"nodeType": "YulFunctionCall",
"src": "4893:25:10"
},
"nodeType": "YulIf",
"src": "4890:112:10"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5035:3:10"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5040:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5045:6:10"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "5011:23:10"
},
"nodeType": "YulFunctionCall",
"src": "5011:41:10"
},
"nodeType": "YulExpressionStatement",
"src": "5011:41:10"
}
]
},
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4704:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4709:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4717:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "4725:5:10",
"type": ""
}
],
"src": "4648:410:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5138:277:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5187:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "5189:77:10"
},
"nodeType": "YulFunctionCall",
"src": "5189:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "5189:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5166:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5174:4:10",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5162:3:10"
},
"nodeType": "YulFunctionCall",
"src": "5162:17:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5181:3:10"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5158:3:10"
},
"nodeType": "YulFunctionCall",
"src": "5158:27:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5151:6:10"
},
"nodeType": "YulFunctionCall",
"src": "5151:35:10"
},
"nodeType": "YulIf",
"src": "5148:122:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5279:34:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5306:6:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5293:12:10"
},
"nodeType": "YulFunctionCall",
"src": "5293:20:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5283:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5322:87:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5382:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5390:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5378:3:10"
},
"nodeType": "YulFunctionCall",
"src": "5378:17:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5397:6:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5405:3:10"
}
],
"functionName": {
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5331:46:10"
},
"nodeType": "YulFunctionCall",
"src": "5331:78:10"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5322:5:10"
}
]
}
]
},
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5116:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5124:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5132:5:10",
"type": ""
}
],
"src": "5077:338:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5581:1075:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5628:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5630:77:10"
},
"nodeType": "YulFunctionCall",
"src": "5630:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "5630:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5602:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5611:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5598:3:10"
},
"nodeType": "YulFunctionCall",
"src": "5598:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5623:3:10",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5594:3:10"
},
"nodeType": "YulFunctionCall",
"src": "5594:33:10"
},
"nodeType": "YulIf",
"src": "5591:120:10"
},
{
"nodeType": "YulBlock",
"src": "5721:117:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5736:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5750:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5740:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5765:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5800:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5811:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5796:3:10"
},
"nodeType": "YulFunctionCall",
"src": "5796:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5820:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "5775:20:10"
},
"nodeType": "YulFunctionCall",
"src": "5775:53:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5765:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5848:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5863:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5877:2:10",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5867:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5893:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5928:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5939:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5924:3:10"
},
"nodeType": "YulFunctionCall",
"src": "5924:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5948:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "5903:20:10"
},
"nodeType": "YulFunctionCall",
"src": "5903:53:10"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5893:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5976:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5991:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6005:2:10",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5995:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6021:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6056:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6067:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6052:3:10"
},
"nodeType": "YulFunctionCall",
"src": "6052:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6076:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6031:20:10"
},
"nodeType": "YulFunctionCall",
"src": "6031:53:10"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6021:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6104:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6119:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6133:2:10",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6123:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6149:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6184:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6195:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6180:3:10"
},
"nodeType": "YulFunctionCall",
"src": "6180:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6204:7:10"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6159:20:10"
},
"nodeType": "YulFunctionCall",
"src": "6159:53:10"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "6149:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6232:119:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6247:17:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6261:3:10",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6251:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6278:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6313:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6324:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6309:3:10"
},
"nodeType": "YulFunctionCall",
"src": "6309:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6333:7:10"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6288:20:10"
},
"nodeType": "YulFunctionCall",
"src": "6288:53:10"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "6278:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6361:288:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6376:47:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6407:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6418:3:10",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6403:3:10"
},
"nodeType": "YulFunctionCall",
"src": "6403:19:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6390:12:10"
},
"nodeType": "YulFunctionCall",
"src": "6390:33:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6380:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6470:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "6472:77:10"
},
"nodeType": "YulFunctionCall",
"src": "6472:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "6472:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6442:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6450:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6439:2:10"
},
"nodeType": "YulFunctionCall",
"src": "6439:30:10"
},
"nodeType": "YulIf",
"src": "6436:117:10"
},
{
"nodeType": "YulAssignment",
"src": "6567:72:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6611:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6622:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6607:3:10"
},
"nodeType": "YulFunctionCall",
"src": "6607:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6631:7:10"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6577:29:10"
},
"nodeType": "YulFunctionCall",
"src": "6577:62:10"
},
"variableNames": [
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "6567:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5511:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5522:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5534:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5542:6:10",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5550:6:10",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "5558:6:10",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "5566:6:10",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "5574:6:10",
"type": ""
}
],
"src": "5421:1235:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6728:263:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6774:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6776:77:10"
},
"nodeType": "YulFunctionCall",
"src": "6776:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "6776:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6749:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6758:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6745:3:10"
},
"nodeType": "YulFunctionCall",
"src": "6745:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6770:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "6741:3:10"
},
"nodeType": "YulFunctionCall",
"src": "6741:32:10"
},
"nodeType": "YulIf",
"src": "6738:119:10"
},
{
"nodeType": "YulBlock",
"src": "6867:117:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6882:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6896:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6886:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6911:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6946:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6957:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6942:3:10"
},
"nodeType": "YulFunctionCall",
"src": "6942:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6966:7:10"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6921:20:10"
},
"nodeType": "YulFunctionCall",
"src": "6921:53:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6911:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6698:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "6709:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6721:6:10",
"type": ""
}
],
"src": "6662:329:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7056:40:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7067:22:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7083:5:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7077:5:10"
},
"nodeType": "YulFunctionCall",
"src": "7077:12:10"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7067:6:10"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7039:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7049:6:10",
"type": ""
}
],
"src": "6997:99:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7198:73:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7215:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7220:6:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7208:6:10"
},
"nodeType": "YulFunctionCall",
"src": "7208:19:10"
},
"nodeType": "YulExpressionStatement",
"src": "7208:19:10"
},
{
"nodeType": "YulAssignment",
"src": "7236:29:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7255:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7260:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7251:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7251:14:10"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "7236:11:10"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7170:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7175:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "7186:11:10",
"type": ""
}
],
"src": "7102:169:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7326:258:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7336:10:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "7345:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "7340:1:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7405:63:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "7430:3:10"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7435:1:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7426:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7426:11:10"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "7449:3:10"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7454:1:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7445:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7445:11:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7439:5:10"
},
"nodeType": "YulFunctionCall",
"src": "7439:18:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7419:6:10"
},
"nodeType": "YulFunctionCall",
"src": "7419:39:10"
},
"nodeType": "YulExpressionStatement",
"src": "7419:39:10"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7366:1:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7369:6:10"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7363:2:10"
},
"nodeType": "YulFunctionCall",
"src": "7363:13:10"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "7377:19:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7379:15:10",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7388:1:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7391:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7384:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7384:10:10"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7379:1:10"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "7359:3:10",
"statements": []
},
"src": "7355:113:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7502:76:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "7552:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7557:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7548:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7548:16:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7566:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7541:6:10"
},
"nodeType": "YulFunctionCall",
"src": "7541:27:10"
},
"nodeType": "YulExpressionStatement",
"src": "7541:27:10"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7483:1:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7486:6:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7480:2:10"
},
"nodeType": "YulFunctionCall",
"src": "7480:13:10"
},
"nodeType": "YulIf",
"src": "7477:101:10"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "7308:3:10",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "7313:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7318:6:10",
"type": ""
}
],
"src": "7277:307:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7682:272:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7692:53:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7739:5:10"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7706:32:10"
},
"nodeType": "YulFunctionCall",
"src": "7706:39:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7696:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7754:78:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7820:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7825:6:10"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7761:58:10"
},
"nodeType": "YulFunctionCall",
"src": "7761:71:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7754:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7867:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7874:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7863:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7863:16:10"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7881:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7886:6:10"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "7841:21:10"
},
"nodeType": "YulFunctionCall",
"src": "7841:52:10"
},
"nodeType": "YulExpressionStatement",
"src": "7841:52:10"
},
{
"nodeType": "YulAssignment",
"src": "7902:46:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7913:3:10"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7940:6:10"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "7918:21:10"
},
"nodeType": "YulFunctionCall",
"src": "7918:29:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7909:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7909:39:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7902:3:10"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7663:5:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7670:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7678:3:10",
"type": ""
}
],
"src": "7590:364:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8078:195:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8088:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8100:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8111:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8096:3:10"
},
"nodeType": "YulFunctionCall",
"src": "8096:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8088:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8135:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8146:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8131:3:10"
},
"nodeType": "YulFunctionCall",
"src": "8131:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8154:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8160:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8150:3:10"
},
"nodeType": "YulFunctionCall",
"src": "8150:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8124:6:10"
},
"nodeType": "YulFunctionCall",
"src": "8124:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "8124:47:10"
},
{
"nodeType": "YulAssignment",
"src": "8180:86:10",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8252:6:10"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8261:4:10"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8188:63:10"
},
"nodeType": "YulFunctionCall",
"src": "8188:78:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8180:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8050:9:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8062:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8073:4:10",
"type": ""
}
],
"src": "7960:313:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8362:391:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8408:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "8410:77:10"
},
"nodeType": "YulFunctionCall",
"src": "8410:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "8410:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8383:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8392:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8379:3:10"
},
"nodeType": "YulFunctionCall",
"src": "8379:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8404:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "8375:3:10"
},
"nodeType": "YulFunctionCall",
"src": "8375:32:10"
},
"nodeType": "YulIf",
"src": "8372:119:10"
},
{
"nodeType": "YulBlock",
"src": "8501:117:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8516:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8530:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8520:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8545:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8580:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8591:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8576:3:10"
},
"nodeType": "YulFunctionCall",
"src": "8576:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8600:7:10"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "8555:20:10"
},
"nodeType": "YulFunctionCall",
"src": "8555:53:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8545:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8628:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8643:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8657:2:10",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8647:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8673:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8708:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8719:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8704:3:10"
},
"nodeType": "YulFunctionCall",
"src": "8704:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8728:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "8683:20:10"
},
"nodeType": "YulFunctionCall",
"src": "8683:53:10"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "8673:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8324:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "8335:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8347:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "8355:6:10",
"type": ""
}
],
"src": "8279:474:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8841:229:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8946:22:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "8948:16:10"
},
"nodeType": "YulFunctionCall",
"src": "8948:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "8948:18:10"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8918:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8926:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "8915:2:10"
},
"nodeType": "YulFunctionCall",
"src": "8915:30:10"
},
"nodeType": "YulIf",
"src": "8912:56:10"
},
{
"nodeType": "YulAssignment",
"src": "8978:25:10",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8990:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8998:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "8986:3:10"
},
"nodeType": "YulFunctionCall",
"src": "8986:17:10"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8978:4:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "9040:23:10",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "9052:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9058:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9048:3:10"
},
"nodeType": "YulFunctionCall",
"src": "9048:15:10"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "9040:4:10"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "8825:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "8836:4:10",
"type": ""
}
],
"src": "8759:311:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9165:28:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9182:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9185:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "9175:6:10"
},
"nodeType": "YulFunctionCall",
"src": "9175:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "9175:12:10"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "9076:117:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9318:608:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9328:90:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9410:6:10"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9353:56:10"
},
"nodeType": "YulFunctionCall",
"src": "9353:64:10"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "9337:15:10"
},
"nodeType": "YulFunctionCall",
"src": "9337:81:10"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "9328:5:10"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "9427:16:10",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "9438:5:10"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "9431:3:10",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "9460:5:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9467:6:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9453:6:10"
},
"nodeType": "YulFunctionCall",
"src": "9453:21:10"
},
"nodeType": "YulExpressionStatement",
"src": "9453:21:10"
},
{
"nodeType": "YulAssignment",
"src": "9483:23:10",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "9494:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9501:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9490:3:10"
},
"nodeType": "YulFunctionCall",
"src": "9490:16:10"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "9483:3:10"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "9516:44:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9534:6:10"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9546:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9554:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "9542:3:10"
},
"nodeType": "YulFunctionCall",
"src": "9542:17:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9530:3:10"
},
"nodeType": "YulFunctionCall",
"src": "9530:30:10"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "9520:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9588:103:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "9602:77:10"
},
"nodeType": "YulFunctionCall",
"src": "9602:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "9602:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "9575:6:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9583:3:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "9572:2:10"
},
"nodeType": "YulFunctionCall",
"src": "9572:15:10"
},
"nodeType": "YulIf",
"src": "9569:122:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9776:144:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9791:21:10",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "9809:3:10"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "9795:10:10",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "9833:3:10"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "9859:10:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9871:3:10"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "9838:20:10"
},
"nodeType": "YulFunctionCall",
"src": "9838:37:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9826:6:10"
},
"nodeType": "YulFunctionCall",
"src": "9826:50:10"
},
"nodeType": "YulExpressionStatement",
"src": "9826:50:10"
},
{
"nodeType": "YulAssignment",
"src": "9889:21:10",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "9900:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9905:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9896:3:10"
},
"nodeType": "YulFunctionCall",
"src": "9896:14:10"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "9889:3:10"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "9729:3:10"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "9734:6:10"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "9726:2:10"
},
"nodeType": "YulFunctionCall",
"src": "9726:15:10"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "9742:25:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9744:21:10",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "9755:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9760:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9751:3:10"
},
"nodeType": "YulFunctionCall",
"src": "9751:14:10"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "9744:3:10"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "9704:21:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9706:17:10",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9717:6:10"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "9710:3:10",
"type": ""
}
]
}
]
},
"src": "9700:220:10"
}
]
},
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9288:6:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "9296:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9304:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "9312:5:10",
"type": ""
}
],
"src": "9216:710:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10026:293:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10075:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "10077:77:10"
},
"nodeType": "YulFunctionCall",
"src": "10077:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "10077:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10054:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10062:4:10",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10050:3:10"
},
"nodeType": "YulFunctionCall",
"src": "10050:17:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10069:3:10"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "10046:3:10"
},
"nodeType": "YulFunctionCall",
"src": "10046:27:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "10039:6:10"
},
"nodeType": "YulFunctionCall",
"src": "10039:35:10"
},
"nodeType": "YulIf",
"src": "10036:122:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "10167:34:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10194:6:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "10181:12:10"
},
"nodeType": "YulFunctionCall",
"src": "10181:20:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "10171:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10210:103:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10286:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10294:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10282:3:10"
},
"nodeType": "YulFunctionCall",
"src": "10282:17:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10301:6:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10309:3:10"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "10219:62:10"
},
"nodeType": "YulFunctionCall",
"src": "10219:94:10"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "10210:5:10"
}
]
}
]
},
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10004:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "10012:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "10020:5:10",
"type": ""
}
],
"src": "9949:370:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10518:1316:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10565:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "10567:77:10"
},
"nodeType": "YulFunctionCall",
"src": "10567:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "10567:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10539:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10548:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10535:3:10"
},
"nodeType": "YulFunctionCall",
"src": "10535:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10560:3:10",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "10531:3:10"
},
"nodeType": "YulFunctionCall",
"src": "10531:33:10"
},
"nodeType": "YulIf",
"src": "10528:120:10"
},
{
"nodeType": "YulBlock",
"src": "10658:117:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10673:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10687:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10677:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10702:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10737:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10748:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10733:3:10"
},
"nodeType": "YulFunctionCall",
"src": "10733:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10757:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "10712:20:10"
},
"nodeType": "YulFunctionCall",
"src": "10712:53:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10702:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "10785:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10800:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10814:2:10",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10804:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10830:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10865:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10876:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10861:3:10"
},
"nodeType": "YulFunctionCall",
"src": "10861:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10885:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "10840:20:10"
},
"nodeType": "YulFunctionCall",
"src": "10840:53:10"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10830:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "10913:303:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10928:46:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10959:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10970:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10955:3:10"
},
"nodeType": "YulFunctionCall",
"src": "10955:18:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "10942:12:10"
},
"nodeType": "YulFunctionCall",
"src": "10942:32:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10932:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "11021:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "11023:77:10"
},
"nodeType": "YulFunctionCall",
"src": "11023:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "11023:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10993:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11001:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10990:2:10"
},
"nodeType": "YulFunctionCall",
"src": "10990:30:10"
},
"nodeType": "YulIf",
"src": "10987:117:10"
},
{
"nodeType": "YulAssignment",
"src": "11118:88:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11178:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11189:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11174:3:10"
},
"nodeType": "YulFunctionCall",
"src": "11174:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11198:7:10"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "11128:45:10"
},
"nodeType": "YulFunctionCall",
"src": "11128:78:10"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "11118:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "11226:303:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11241:46:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11272:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11283:2:10",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11268:3:10"
},
"nodeType": "YulFunctionCall",
"src": "11268:18:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "11255:12:10"
},
"nodeType": "YulFunctionCall",
"src": "11255:32:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11245:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "11334:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "11336:77:10"
},
"nodeType": "YulFunctionCall",
"src": "11336:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "11336:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11306:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11314:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "11303:2:10"
},
"nodeType": "YulFunctionCall",
"src": "11303:30:10"
},
"nodeType": "YulIf",
"src": "11300:117:10"
},
{
"nodeType": "YulAssignment",
"src": "11431:88:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11491:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11502:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11487:3:10"
},
"nodeType": "YulFunctionCall",
"src": "11487:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11511:7:10"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "11441:45:10"
},
"nodeType": "YulFunctionCall",
"src": "11441:78:10"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "11431:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "11539:288:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11554:47:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11585:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11596:3:10",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11581:3:10"
},
"nodeType": "YulFunctionCall",
"src": "11581:19:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "11568:12:10"
},
"nodeType": "YulFunctionCall",
"src": "11568:33:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11558:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "11648:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "11650:77:10"
},
"nodeType": "YulFunctionCall",
"src": "11650:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "11650:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11620:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11628:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "11617:2:10"
},
"nodeType": "YulFunctionCall",
"src": "11617:30:10"
},
"nodeType": "YulIf",
"src": "11614:117:10"
},
{
"nodeType": "YulAssignment",
"src": "11745:72:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11789:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11800:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11785:3:10"
},
"nodeType": "YulFunctionCall",
"src": "11785:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11809:7:10"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "11755:29:10"
},
"nodeType": "YulFunctionCall",
"src": "11755:62:10"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "11745:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10456:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "10467:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10479:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "10487:6:10",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "10495:6:10",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "10503:6:10",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "10511:6:10",
"type": ""
}
],
"src": "10325:1509:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11922:229:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12027:22:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "12029:16:10"
},
"nodeType": "YulFunctionCall",
"src": "12029:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "12029:18:10"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11999:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12007:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "11996:2:10"
},
"nodeType": "YulFunctionCall",
"src": "11996:30:10"
},
"nodeType": "YulIf",
"src": "11993:56:10"
},
{
"nodeType": "YulAssignment",
"src": "12059:25:10",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12071:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12079:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "12067:3:10"
},
"nodeType": "YulFunctionCall",
"src": "12067:17:10"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "12059:4:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "12121:23:10",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "12133:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12139:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12129:3:10"
},
"nodeType": "YulFunctionCall",
"src": "12129:15:10"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "12121:4:10"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "11906:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "11917:4:10",
"type": ""
}
],
"src": "11840:311:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12276:608:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12286:90:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12368:6:10"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "12311:56:10"
},
"nodeType": "YulFunctionCall",
"src": "12311:64:10"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "12295:15:10"
},
"nodeType": "YulFunctionCall",
"src": "12295:81:10"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "12286:5:10"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "12385:16:10",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "12396:5:10"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "12389:3:10",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "12418:5:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12425:6:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12411:6:10"
},
"nodeType": "YulFunctionCall",
"src": "12411:21:10"
},
"nodeType": "YulExpressionStatement",
"src": "12411:21:10"
},
{
"nodeType": "YulAssignment",
"src": "12441:23:10",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "12452:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12459:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12448:3:10"
},
"nodeType": "YulFunctionCall",
"src": "12448:16:10"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "12441:3:10"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "12474:44:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12492:6:10"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12504:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12512:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "12500:3:10"
},
"nodeType": "YulFunctionCall",
"src": "12500:17:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12488:3:10"
},
"nodeType": "YulFunctionCall",
"src": "12488:30:10"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "12478:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12546:103:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "12560:77:10"
},
"nodeType": "YulFunctionCall",
"src": "12560:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "12560:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "12533:6:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12541:3:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "12530:2:10"
},
"nodeType": "YulFunctionCall",
"src": "12530:15:10"
},
"nodeType": "YulIf",
"src": "12527:122:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12734:144:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12749:21:10",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "12767:3:10"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "12753:10:10",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "12791:3:10"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "12817:10:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12829:3:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "12796:20:10"
},
"nodeType": "YulFunctionCall",
"src": "12796:37:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12784:6:10"
},
"nodeType": "YulFunctionCall",
"src": "12784:50:10"
},
"nodeType": "YulExpressionStatement",
"src": "12784:50:10"
},
{
"nodeType": "YulAssignment",
"src": "12847:21:10",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "12858:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12863:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12854:3:10"
},
"nodeType": "YulFunctionCall",
"src": "12854:14:10"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "12847:3:10"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "12687:3:10"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "12692:6:10"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "12684:2:10"
},
"nodeType": "YulFunctionCall",
"src": "12684:15:10"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "12700:25:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12702:21:10",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "12713:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12718:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12709:3:10"
},
"nodeType": "YulFunctionCall",
"src": "12709:14:10"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "12702:3:10"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "12662:21:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12664:17:10",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12675:6:10"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "12668:3:10",
"type": ""
}
]
}
]
},
"src": "12658:220:10"
}
]
},
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12246:6:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "12254:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "12262:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "12270:5:10",
"type": ""
}
],
"src": "12174:710:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12984:293:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13033:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "13035:77:10"
},
"nodeType": "YulFunctionCall",
"src": "13035:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "13035:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13012:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13020:4:10",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13008:3:10"
},
"nodeType": "YulFunctionCall",
"src": "13008:17:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "13027:3:10"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "13004:3:10"
},
"nodeType": "YulFunctionCall",
"src": "13004:27:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12997:6:10"
},
"nodeType": "YulFunctionCall",
"src": "12997:35:10"
},
"nodeType": "YulIf",
"src": "12994:122:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "13125:34:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13152:6:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "13139:12:10"
},
"nodeType": "YulFunctionCall",
"src": "13139:20:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "13129:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "13168:103:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13244:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13252:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13240:3:10"
},
"nodeType": "YulFunctionCall",
"src": "13240:17:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "13259:6:10"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "13267:3:10"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "13177:62:10"
},
"nodeType": "YulFunctionCall",
"src": "13177:94:10"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "13168:5:10"
}
]
}
]
},
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12962:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "12970:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "12978:5:10",
"type": ""
}
],
"src": "12907:370:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13416:761:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13462:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "13464:77:10"
},
"nodeType": "YulFunctionCall",
"src": "13464:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "13464:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13437:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13446:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "13433:3:10"
},
"nodeType": "YulFunctionCall",
"src": "13433:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13458:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "13429:3:10"
},
"nodeType": "YulFunctionCall",
"src": "13429:32:10"
},
"nodeType": "YulIf",
"src": "13426:119:10"
},
{
"nodeType": "YulBlock",
"src": "13555:302:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13570:45:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13601:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13612:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13597:3:10"
},
"nodeType": "YulFunctionCall",
"src": "13597:17:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "13584:12:10"
},
"nodeType": "YulFunctionCall",
"src": "13584:31:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13574:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "13662:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "13664:77:10"
},
"nodeType": "YulFunctionCall",
"src": "13664:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "13664:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13634:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13642:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "13631:2:10"
},
"nodeType": "YulFunctionCall",
"src": "13631:30:10"
},
"nodeType": "YulIf",
"src": "13628:117:10"
},
{
"nodeType": "YulAssignment",
"src": "13759:88:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13819:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13830:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13815:3:10"
},
"nodeType": "YulFunctionCall",
"src": "13815:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13839:7:10"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "13769:45:10"
},
"nodeType": "YulFunctionCall",
"src": "13769:78:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "13759:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "13867:303:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13882:46:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13913:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13924:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13909:3:10"
},
"nodeType": "YulFunctionCall",
"src": "13909:18:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "13896:12:10"
},
"nodeType": "YulFunctionCall",
"src": "13896:32:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13886:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "13975:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "13977:77:10"
},
"nodeType": "YulFunctionCall",
"src": "13977:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "13977:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13947:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13955:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "13944:2:10"
},
"nodeType": "YulFunctionCall",
"src": "13944:30:10"
},
"nodeType": "YulIf",
"src": "13941:117:10"
},
{
"nodeType": "YulAssignment",
"src": "14072:88:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14132:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "14143:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14128:3:10"
},
"nodeType": "YulFunctionCall",
"src": "14128:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "14152:7:10"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14082:45:10"
},
"nodeType": "YulFunctionCall",
"src": "14082:78:10"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "14072:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13378:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "13389:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "13401:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "13409:6:10",
"type": ""
}
],
"src": "13283:894:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14257:40:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14268:22:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "14284:5:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "14278:5:10"
},
"nodeType": "YulFunctionCall",
"src": "14278:12:10"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14268:6:10"
}
]
}
]
},
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "14240:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "14250:6:10",
"type": ""
}
],
"src": "14183:114:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14414:73:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14431:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14436:6:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14424:6:10"
},
"nodeType": "YulFunctionCall",
"src": "14424:19:10"
},
"nodeType": "YulExpressionStatement",
"src": "14424:19:10"
},
{
"nodeType": "YulAssignment",
"src": "14452:29:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14471:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14476:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14467:3:10"
},
"nodeType": "YulFunctionCall",
"src": "14467:14:10"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "14452:11:10"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "14386:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "14391:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "14402:11:10",
"type": ""
}
],
"src": "14303:184:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14565:60:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14575:11:10",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "14583:3:10"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "14575:4:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "14596:22:10",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "14608:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14613:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14604:3:10"
},
"nodeType": "YulFunctionCall",
"src": "14604:14:10"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "14596:4:10"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "14552:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "14560:4:10",
"type": ""
}
],
"src": "14493:132:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14686:53:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14703:3:10"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "14726:5:10"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "14708:17:10"
},
"nodeType": "YulFunctionCall",
"src": "14708:24:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14696:6:10"
},
"nodeType": "YulFunctionCall",
"src": "14696:37:10"
},
"nodeType": "YulExpressionStatement",
"src": "14696:37:10"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "14674:5:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "14681:3:10",
"type": ""
}
],
"src": "14631:108:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14825:99:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "14869:6:10"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14877:3:10"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "14835:33:10"
},
"nodeType": "YulFunctionCall",
"src": "14835:46:10"
},
"nodeType": "YulExpressionStatement",
"src": "14835:46:10"
},
{
"nodeType": "YulAssignment",
"src": "14890:28:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14908:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14913:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14904:3:10"
},
"nodeType": "YulFunctionCall",
"src": "14904:14:10"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "14890:10:10"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "14798:6:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "14806:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "14814:10:10",
"type": ""
}
],
"src": "14745:179:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15005:38:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15015:22:10",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "15027:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15032:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15023:3:10"
},
"nodeType": "YulFunctionCall",
"src": "15023:14:10"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "15015:4:10"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "14992:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "15000:4:10",
"type": ""
}
],
"src": "14930:113:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15203:608:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15213:68:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15275:5:10"
}
],
"functionName": {
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "15227:47:10"
},
"nodeType": "YulFunctionCall",
"src": "15227:54:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "15217:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "15290:93:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15371:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15376:6:10"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "15297:73:10"
},
"nodeType": "YulFunctionCall",
"src": "15297:86:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15290:3:10"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "15392:71:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15457:5:10"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "15407:49:10"
},
"nodeType": "YulFunctionCall",
"src": "15407:56:10"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "15396:7:10",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "15472:21:10",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "15486:7:10"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "15476:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "15562:224:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15576:34:10",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "15603:6:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "15597:5:10"
},
"nodeType": "YulFunctionCall",
"src": "15597:13:10"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "15580:13:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "15623:70:10",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "15674:13:10"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15689:3:10"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "15630:43:10"
},
"nodeType": "YulFunctionCall",
"src": "15630:63:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15623:3:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "15706:70:10",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "15769:6:10"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "15716:52:10"
},
"nodeType": "YulFunctionCall",
"src": "15716:60:10"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "15706:6:10"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "15524:1:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15527:6:10"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "15521:2:10"
},
"nodeType": "YulFunctionCall",
"src": "15521:13:10"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "15535:18:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15537:14:10",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "15546:1:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15549:1:10",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15542:3:10"
},
"nodeType": "YulFunctionCall",
"src": "15542:9:10"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "15537:1:10"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "15506:14:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15508:10:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "15517:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "15512:1:10",
"type": ""
}
]
}
]
},
"src": "15502:284:10"
},
{
"nodeType": "YulAssignment",
"src": "15795:10:10",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15802:3:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15795:3:10"
}
]
}
]
},
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "15182:5:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "15189:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "15198:3:10",
"type": ""
}
],
"src": "15079:732:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15965:225:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15975:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15987:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15998:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15983:3:10"
},
"nodeType": "YulFunctionCall",
"src": "15983:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15975:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16022:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16033:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16018:3:10"
},
"nodeType": "YulFunctionCall",
"src": "16018:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16041:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16047:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "16037:3:10"
},
"nodeType": "YulFunctionCall",
"src": "16037:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16011:6:10"
},
"nodeType": "YulFunctionCall",
"src": "16011:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "16011:47:10"
},
{
"nodeType": "YulAssignment",
"src": "16067:116:10",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "16169:6:10"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16178:4:10"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "16075:93:10"
},
"nodeType": "YulFunctionCall",
"src": "16075:108:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16067:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "15937:9:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "15949:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "15960:4:10",
"type": ""
}
],
"src": "15817:373:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16236:76:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "16290:16:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16299:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16302:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "16292:6:10"
},
"nodeType": "YulFunctionCall",
"src": "16292:12:10"
},
"nodeType": "YulExpressionStatement",
"src": "16292:12:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16259:5:10"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16281:5:10"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "16266:14:10"
},
"nodeType": "YulFunctionCall",
"src": "16266:21:10"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "16256:2:10"
},
"nodeType": "YulFunctionCall",
"src": "16256:32:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "16249:6:10"
},
"nodeType": "YulFunctionCall",
"src": "16249:40:10"
},
"nodeType": "YulIf",
"src": "16246:60:10"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16229:5:10",
"type": ""
}
],
"src": "16196:116:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16367:84:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16377:29:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16399:6:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "16386:12:10"
},
"nodeType": "YulFunctionCall",
"src": "16386:20:10"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16377:5:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16439:5:10"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "16415:23:10"
},
"nodeType": "YulFunctionCall",
"src": "16415:30:10"
},
"nodeType": "YulExpressionStatement",
"src": "16415:30:10"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "16345:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "16353:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16361:5:10",
"type": ""
}
],
"src": "16318:133:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16537:388:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "16583:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "16585:77:10"
},
"nodeType": "YulFunctionCall",
"src": "16585:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "16585:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "16558:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16567:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "16554:3:10"
},
"nodeType": "YulFunctionCall",
"src": "16554:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16579:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "16550:3:10"
},
"nodeType": "YulFunctionCall",
"src": "16550:32:10"
},
"nodeType": "YulIf",
"src": "16547:119:10"
},
{
"nodeType": "YulBlock",
"src": "16676:117:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "16691:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "16705:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "16695:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "16720:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16755:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16766:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16751:3:10"
},
"nodeType": "YulFunctionCall",
"src": "16751:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "16775:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "16730:20:10"
},
"nodeType": "YulFunctionCall",
"src": "16730:53:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "16720:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "16803:115:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "16818:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "16832:2:10",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "16822:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "16848:60:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16880:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16891:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16876:3:10"
},
"nodeType": "YulFunctionCall",
"src": "16876:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "16900:7:10"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "16858:17:10"
},
"nodeType": "YulFunctionCall",
"src": "16858:50:10"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "16848:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "16499:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "16510:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "16522:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "16530:6:10",
"type": ""
}
],
"src": "16457:468:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17014:391:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "17060:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "17062:77:10"
},
"nodeType": "YulFunctionCall",
"src": "17062:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "17062:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "17035:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17044:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "17031:3:10"
},
"nodeType": "YulFunctionCall",
"src": "17031:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17056:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "17027:3:10"
},
"nodeType": "YulFunctionCall",
"src": "17027:32:10"
},
"nodeType": "YulIf",
"src": "17024:119:10"
},
{
"nodeType": "YulBlock",
"src": "17153:117:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "17168:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "17182:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "17172:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "17197:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17232:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "17243:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17228:3:10"
},
"nodeType": "YulFunctionCall",
"src": "17228:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "17252:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "17207:20:10"
},
"nodeType": "YulFunctionCall",
"src": "17207:53:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "17197:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "17280:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "17295:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "17309:2:10",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "17299:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "17325:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17360:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "17371:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17356:3:10"
},
"nodeType": "YulFunctionCall",
"src": "17356:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "17380:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "17335:20:10"
},
"nodeType": "YulFunctionCall",
"src": "17335:53:10"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "17325:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "16976:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "16987:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "16999:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "17007:6:10",
"type": ""
}
],
"src": "16931:474:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17554:946:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "17601:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "17603:77:10"
},
"nodeType": "YulFunctionCall",
"src": "17603:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "17603:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "17575:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17584:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "17571:3:10"
},
"nodeType": "YulFunctionCall",
"src": "17571:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17596:3:10",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "17567:3:10"
},
"nodeType": "YulFunctionCall",
"src": "17567:33:10"
},
"nodeType": "YulIf",
"src": "17564:120:10"
},
{
"nodeType": "YulBlock",
"src": "17694:117:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "17709:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "17723:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "17713:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "17738:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17773:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "17784:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17769:3:10"
},
"nodeType": "YulFunctionCall",
"src": "17769:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "17793:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "17748:20:10"
},
"nodeType": "YulFunctionCall",
"src": "17748:53:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "17738:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "17821:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "17836:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "17850:2:10",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "17840:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "17866:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17901:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "17912:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17897:3:10"
},
"nodeType": "YulFunctionCall",
"src": "17897:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "17921:7:10"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "17876:20:10"
},
"nodeType": "YulFunctionCall",
"src": "17876:53:10"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "17866:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "17949:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "17964:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "17978:2:10",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "17968:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "17994:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18029:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "18040:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18025:3:10"
},
"nodeType": "YulFunctionCall",
"src": "18025:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "18049:7:10"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "18004:20:10"
},
"nodeType": "YulFunctionCall",
"src": "18004:53:10"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "17994:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "18077:118:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "18092:16:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "18106:2:10",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "18096:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "18122:63:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18157:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "18168:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18153:3:10"
},
"nodeType": "YulFunctionCall",
"src": "18153:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "18177:7:10"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "18132:20:10"
},
"nodeType": "YulFunctionCall",
"src": "18132:53:10"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "18122:6:10"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "18205:288:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "18220:47:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18251:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18262:3:10",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18247:3:10"
},
"nodeType": "YulFunctionCall",
"src": "18247:19:10"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "18234:12:10"
},
"nodeType": "YulFunctionCall",
"src": "18234:33:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "18224:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "18314:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "18316:77:10"
},
"nodeType": "YulFunctionCall",
"src": "18316:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "18316:79:10"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "18286:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18294:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "18283:2:10"
},
"nodeType": "YulFunctionCall",
"src": "18283:30:10"
},
"nodeType": "YulIf",
"src": "18280:117:10"
},
{
"nodeType": "YulAssignment",
"src": "18411:72:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18455:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "18466:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18451:3:10"
},
"nodeType": "YulFunctionCall",
"src": "18451:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "18475:7:10"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "18421:29:10"
},
"nodeType": "YulFunctionCall",
"src": "18421:62:10"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "18411:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "17492:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "17503:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "17515:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "17523:6:10",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "17531:6:10",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "17539:6:10",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "17547:6:10",
"type": ""
}
],
"src": "17411:1089:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18612:124:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "18634:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18642:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18630:3:10"
},
"nodeType": "YulFunctionCall",
"src": "18630:14:10"
},
{
"hexValue": "455243313135353a2062616c616e636520717565727920666f7220746865207a",
"kind": "string",
"nodeType": "YulLiteral",
"src": "18646:34:10",
"type": "",
"value": "ERC1155: balance query for the z"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "18623:6:10"
},
"nodeType": "YulFunctionCall",
"src": "18623:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "18623:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "18702:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18710:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18698:3:10"
},
"nodeType": "YulFunctionCall",
"src": "18698:15:10"
},
{
"hexValue": "65726f2061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "18715:13:10",
"type": "",
"value": "ero address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "18691:6:10"
},
"nodeType": "YulFunctionCall",
"src": "18691:38:10"
},
"nodeType": "YulExpressionStatement",
"src": "18691:38:10"
}
]
},
"name": "store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "18604:6:10",
"type": ""
}
],
"src": "18506:230:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18888:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18898:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18964:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18969:2:10",
"type": "",
"value": "43"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "18905:58:10"
},
"nodeType": "YulFunctionCall",
"src": "18905:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18898:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19070:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9",
"nodeType": "YulIdentifier",
"src": "18981:88:10"
},
"nodeType": "YulFunctionCall",
"src": "18981:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "18981:93:10"
},
{
"nodeType": "YulAssignment",
"src": "19083:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19094:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19099:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19090:3:10"
},
"nodeType": "YulFunctionCall",
"src": "19090:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19083:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "18876:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "18884:3:10",
"type": ""
}
],
"src": "18742:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19285:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19295:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "19307:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19318:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19303:3:10"
},
"nodeType": "YulFunctionCall",
"src": "19303:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "19295:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "19342:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19353:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19338:3:10"
},
"nodeType": "YulFunctionCall",
"src": "19338:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "19361:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "19367:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "19357:3:10"
},
"nodeType": "YulFunctionCall",
"src": "19357:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19331:6:10"
},
"nodeType": "YulFunctionCall",
"src": "19331:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "19331:47:10"
},
{
"nodeType": "YulAssignment",
"src": "19387:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "19521:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "19395:124:10"
},
"nodeType": "YulFunctionCall",
"src": "19395:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "19387:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "19265:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "19280:4:10",
"type": ""
}
],
"src": "19114:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19604:53:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19621:3:10"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "19644:5:10"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "19626:17:10"
},
"nodeType": "YulFunctionCall",
"src": "19626:24:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19614:6:10"
},
"nodeType": "YulFunctionCall",
"src": "19614:37:10"
},
"nodeType": "YulExpressionStatement",
"src": "19614:37:10"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "19592:5:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "19599:3:10",
"type": ""
}
],
"src": "19539:118:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19721:40:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19732:22:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "19748:5:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "19742:5:10"
},
"nodeType": "YulFunctionCall",
"src": "19742:12:10"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19732:6:10"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "19704:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "19714:6:10",
"type": ""
}
],
"src": "19663:98:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19862:73:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19879:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19884:6:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19872:6:10"
},
"nodeType": "YulFunctionCall",
"src": "19872:19:10"
},
"nodeType": "YulExpressionStatement",
"src": "19872:19:10"
},
{
"nodeType": "YulAssignment",
"src": "19900:29:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19919:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19924:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19915:3:10"
},
"nodeType": "YulFunctionCall",
"src": "19915:14:10"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "19900:11:10"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "19834:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "19839:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "19850:11:10",
"type": ""
}
],
"src": "19767:168:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20031:270:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "20041:52:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20087:5:10"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "20055:31:10"
},
"nodeType": "YulFunctionCall",
"src": "20055:38:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "20045:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "20102:77:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20167:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "20172:6:10"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "20109:57:10"
},
"nodeType": "YulFunctionCall",
"src": "20109:70:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20102:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20214:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20221:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20210:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20210:16:10"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20228:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "20233:6:10"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "20188:21:10"
},
"nodeType": "YulFunctionCall",
"src": "20188:52:10"
},
"nodeType": "YulExpressionStatement",
"src": "20188:52:10"
},
{
"nodeType": "YulAssignment",
"src": "20249:46:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20260:3:10"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "20287:6:10"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "20265:21:10"
},
"nodeType": "YulFunctionCall",
"src": "20265:29:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20256:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20256:39:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "20249:3:10"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "20012:5:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "20019:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "20027:3:10",
"type": ""
}
],
"src": "19941:360:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20535:523:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "20545:27:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20557:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20568:3:10",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20553:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20553:19:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "20545:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "20626:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20639:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20650:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20635:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20635:17:10"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "20582:43:10"
},
"nodeType": "YulFunctionCall",
"src": "20582:71:10"
},
"nodeType": "YulExpressionStatement",
"src": "20582:71:10"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "20707:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20720:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20731:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20716:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20716:18:10"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "20663:43:10"
},
"nodeType": "YulFunctionCall",
"src": "20663:72:10"
},
"nodeType": "YulExpressionStatement",
"src": "20663:72:10"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "20789:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20802:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20813:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20798:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20798:18:10"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "20745:43:10"
},
"nodeType": "YulFunctionCall",
"src": "20745:72:10"
},
"nodeType": "YulExpressionStatement",
"src": "20745:72:10"
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "20871:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20884:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20895:2:10",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20880:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20880:18:10"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "20827:43:10"
},
"nodeType": "YulFunctionCall",
"src": "20827:72:10"
},
"nodeType": "YulExpressionStatement",
"src": "20827:72:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20920:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20931:3:10",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20916:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20916:19:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "20941:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20947:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "20937:3:10"
},
"nodeType": "YulFunctionCall",
"src": "20937:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "20909:6:10"
},
"nodeType": "YulFunctionCall",
"src": "20909:49:10"
},
"nodeType": "YulExpressionStatement",
"src": "20909:49:10"
},
{
"nodeType": "YulAssignment",
"src": "20967:84:10",
"value": {
"arguments": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "21037:6:10"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "21046:4:10"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "20975:61:10"
},
"nodeType": "YulFunctionCall",
"src": "20975:76:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "20967:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "20475:9:10",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "20487:6:10",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "20495:6:10",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "20503:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "20511:6:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "20519:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "20530:4:10",
"type": ""
}
],
"src": "20307:751:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21126:79:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "21136:22:10",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "21151:6:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "21145:5:10"
},
"nodeType": "YulFunctionCall",
"src": "21145:13:10"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "21136:5:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "21193:5:10"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "21167:25:10"
},
"nodeType": "YulFunctionCall",
"src": "21167:32:10"
},
"nodeType": "YulExpressionStatement",
"src": "21167:32:10"
}
]
},
"name": "abi_decode_t_bytes4_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "21104:6:10",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "21112:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "21120:5:10",
"type": ""
}
],
"src": "21064:141:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21287:273:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "21333:83:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "21335:77:10"
},
"nodeType": "YulFunctionCall",
"src": "21335:79:10"
},
"nodeType": "YulExpressionStatement",
"src": "21335:79:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "21308:7:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "21317:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "21304:3:10"
},
"nodeType": "YulFunctionCall",
"src": "21304:23:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21329:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "21300:3:10"
},
"nodeType": "YulFunctionCall",
"src": "21300:32:10"
},
"nodeType": "YulIf",
"src": "21297:119:10"
},
{
"nodeType": "YulBlock",
"src": "21426:127:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "21441:15:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "21455:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "21445:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "21470:73:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "21515:9:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "21526:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "21511:3:10"
},
"nodeType": "YulFunctionCall",
"src": "21511:22:10"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "21535:7:10"
}
],
"functionName": {
"name": "abi_decode_t_bytes4_fromMemory",
"nodeType": "YulIdentifier",
"src": "21480:30:10"
},
"nodeType": "YulFunctionCall",
"src": "21480:63:10"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "21470:6:10"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "21257:9:10",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "21268:7:10",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "21280:6:10",
"type": ""
}
],
"src": "21211:349:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21619:53:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "21629:36:10",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21654:3:10",
"type": "",
"value": "224"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "21659:5:10"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "21650:3:10"
},
"nodeType": "YulFunctionCall",
"src": "21650:15:10"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "21629:8:10"
}
]
}
]
},
"name": "shift_right_224_unsigned",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "21600:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "21610:8:10",
"type": ""
}
],
"src": "21566:106:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21717:144:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "21754:101:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21783:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21786:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21789:1:10",
"type": "",
"value": "4"
}
],
"functionName": {
"name": "returndatacopy",
"nodeType": "YulIdentifier",
"src": "21768:14:10"
},
"nodeType": "YulFunctionCall",
"src": "21768:23:10"
},
"nodeType": "YulExpressionStatement",
"src": "21768:23:10"
},
{
"nodeType": "YulAssignment",
"src": "21804:41:10",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21842:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "21836:5:10"
},
"nodeType": "YulFunctionCall",
"src": "21836:8:10"
}
],
"functionName": {
"name": "shift_right_224_unsigned",
"nodeType": "YulIdentifier",
"src": "21811:24:10"
},
"nodeType": "YulFunctionCall",
"src": "21811:34:10"
},
"variableNames": [
{
"name": "sig",
"nodeType": "YulIdentifier",
"src": "21804:3:10"
}
]
}
]
},
"condition": {
"arguments": [
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "21733:14:10"
},
"nodeType": "YulFunctionCall",
"src": "21733:16:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21751:1:10",
"type": "",
"value": "3"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "21730:2:10"
},
"nodeType": "YulFunctionCall",
"src": "21730:23:10"
},
"nodeType": "YulIf",
"src": "21727:128:10"
}
]
},
"name": "return_data_selector",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "sig",
"nodeType": "YulTypedName",
"src": "21713:3:10",
"type": ""
}
],
"src": "21678:183:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21910:668:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "21950:9:10",
"statements": [
{
"nodeType": "YulLeave",
"src": "21952:5:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "21926:14:10"
},
"nodeType": "YulFunctionCall",
"src": "21926:16:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21944:4:10",
"type": "",
"value": "0x44"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "21923:2:10"
},
"nodeType": "YulFunctionCall",
"src": "21923:26:10"
},
"nodeType": "YulIf",
"src": "21920:39:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "21969:32:10",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "21981:18:10"
},
"nodeType": "YulFunctionCall",
"src": "21981:20:10"
},
"variables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "21973:4:10",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "22025:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22031:1:10",
"type": "",
"value": "4"
},
{
"arguments": [
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "22038:14:10"
},
"nodeType": "YulFunctionCall",
"src": "22038:16:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22056:1:10",
"type": "",
"value": "4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "22034:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22034:24:10"
}
],
"functionName": {
"name": "returndatacopy",
"nodeType": "YulIdentifier",
"src": "22010:14:10"
},
"nodeType": "YulFunctionCall",
"src": "22010:49:10"
},
"nodeType": "YulExpressionStatement",
"src": "22010:49:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "22069:25:10",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "22089:4:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "22083:5:10"
},
"nodeType": "YulFunctionCall",
"src": "22083:11:10"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "22073:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "22220:29:10",
"statements": [
{
"nodeType": "YulLeave",
"src": "22234:5:10"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "22125:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22133:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "22122:2:10"
},
"nodeType": "YulFunctionCall",
"src": "22122:30:10"
},
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "22173:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22181:4:10",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22169:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22169:17:10"
},
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "22188:14:10"
},
"nodeType": "YulFunctionCall",
"src": "22188:16:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "22166:2:10"
},
"nodeType": "YulFunctionCall",
"src": "22166:39:10"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "22106:2:10"
},
"nodeType": "YulFunctionCall",
"src": "22106:113:10"
},
"nodeType": "YulIf",
"src": "22103:146:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "22259:28:10",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "22274:4:10"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "22280:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22270:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22270:17:10"
},
"variables": [
{
"name": "msg",
"nodeType": "YulTypedName",
"src": "22263:3:10",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "22296:24:10",
"value": {
"arguments": [
{
"name": "msg",
"nodeType": "YulIdentifier",
"src": "22316:3:10"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "22310:5:10"
},
"nodeType": "YulFunctionCall",
"src": "22310:10:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "22300:6:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "22363:9:10",
"statements": [
{
"nodeType": "YulLeave",
"src": "22365:5:10"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "22335:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22343:18:10",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "22332:2:10"
},
"nodeType": "YulFunctionCall",
"src": "22332:30:10"
},
"nodeType": "YulIf",
"src": "22329:43:10"
},
{
"nodeType": "YulVariableDeclaration",
"src": "22382:38:10",
"value": {
"arguments": [
{
"arguments": [
{
"name": "msg",
"nodeType": "YulIdentifier",
"src": "22401:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22406:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22397:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22397:14:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "22413:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22393:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22393:27:10"
},
"variables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "22386:3:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "22477:9:10",
"statements": [
{
"nodeType": "YulLeave",
"src": "22479:5:10"
}
]
},
"condition": {
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "22435:3:10"
},
{
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "22444:4:10"
},
{
"arguments": [
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "22454:14:10"
},
"nodeType": "YulFunctionCall",
"src": "22454:16:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22472:1:10",
"type": "",
"value": "4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "22450:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22450:24:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22440:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22440:35:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "22432:2:10"
},
"nodeType": "YulFunctionCall",
"src": "22432:44:10"
},
"nodeType": "YulIf",
"src": "22429:57:10"
},
{
"expression": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "22516:4:10"
},
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "22526:6:10"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22538:4:10",
"type": "",
"value": "0x20"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "22544:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22534:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22534:17:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22522:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22522:30:10"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "22496:19:10"
},
"nodeType": "YulFunctionCall",
"src": "22496:57:10"
},
"nodeType": "YulExpressionStatement",
"src": "22496:57:10"
},
{
"nodeType": "YulAssignment",
"src": "22562:10:10",
"value": {
"name": "msg",
"nodeType": "YulIdentifier",
"src": "22569:3:10"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "22562:3:10"
}
]
}
]
},
"name": "try_decode_error_message",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "21906:3:10",
"type": ""
}
],
"src": "21867:711:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "22690:133:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "22712:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22720:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22708:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22708:14:10"
},
{
"hexValue": "455243313135353a207472616e7366657220746f206e6f6e2045524331313535",
"kind": "string",
"nodeType": "YulLiteral",
"src": "22724:34:10",
"type": "",
"value": "ERC1155: transfer to non ERC1155"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "22701:6:10"
},
"nodeType": "YulFunctionCall",
"src": "22701:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "22701:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "22780:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22788:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22776:3:10"
},
"nodeType": "YulFunctionCall",
"src": "22776:15:10"
},
{
"hexValue": "526563656976657220696d706c656d656e746572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "22793:22:10",
"type": "",
"value": "Receiver implementer"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "22769:6:10"
},
"nodeType": "YulFunctionCall",
"src": "22769:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "22769:47:10"
}
]
},
"name": "store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "22682:6:10",
"type": ""
}
],
"src": "22584:239:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "22975:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "22985:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "23051:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23056:2:10",
"type": "",
"value": "52"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "22992:58:10"
},
"nodeType": "YulFunctionCall",
"src": "22992:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "22985:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "23157:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed",
"nodeType": "YulIdentifier",
"src": "23068:88:10"
},
"nodeType": "YulFunctionCall",
"src": "23068:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "23068:93:10"
},
{
"nodeType": "YulAssignment",
"src": "23170:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "23181:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23186:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23177:3:10"
},
"nodeType": "YulFunctionCall",
"src": "23177:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "23170:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "22963:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "22971:3:10",
"type": ""
}
],
"src": "22829:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "23372:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "23382:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "23394:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23405:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23390:3:10"
},
"nodeType": "YulFunctionCall",
"src": "23390:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "23382:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "23429:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23440:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23425:3:10"
},
"nodeType": "YulFunctionCall",
"src": "23425:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "23448:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "23454:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "23444:3:10"
},
"nodeType": "YulFunctionCall",
"src": "23444:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "23418:6:10"
},
"nodeType": "YulFunctionCall",
"src": "23418:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "23418:47:10"
},
{
"nodeType": "YulAssignment",
"src": "23474:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "23608:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "23482:124:10"
},
"nodeType": "YulFunctionCall",
"src": "23482:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "23474:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "23352:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "23367:4:10",
"type": ""
}
],
"src": "23201:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "23732:121:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "23754:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23762:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23750:3:10"
},
"nodeType": "YulFunctionCall",
"src": "23750:14:10"
},
{
"hexValue": "455243313135353a204552433131353552656365697665722072656a65637465",
"kind": "string",
"nodeType": "YulLiteral",
"src": "23766:34:10",
"type": "",
"value": "ERC1155: ERC1155Receiver rejecte"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "23743:6:10"
},
"nodeType": "YulFunctionCall",
"src": "23743:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "23743:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "23822:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23830:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23818:3:10"
},
"nodeType": "YulFunctionCall",
"src": "23818:15:10"
},
{
"hexValue": "6420746f6b656e73",
"kind": "string",
"nodeType": "YulLiteral",
"src": "23835:10:10",
"type": "",
"value": "d tokens"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "23811:6:10"
},
"nodeType": "YulFunctionCall",
"src": "23811:35:10"
},
"nodeType": "YulExpressionStatement",
"src": "23811:35:10"
}
]
},
"name": "store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "23724:6:10",
"type": ""
}
],
"src": "23626:227:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "24005:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "24015:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "24081:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24086:2:10",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "24022:58:10"
},
"nodeType": "YulFunctionCall",
"src": "24022:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "24015:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "24187:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503",
"nodeType": "YulIdentifier",
"src": "24098:88:10"
},
"nodeType": "YulFunctionCall",
"src": "24098:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "24098:93:10"
},
{
"nodeType": "YulAssignment",
"src": "24200:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "24211:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24216:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24207:3:10"
},
"nodeType": "YulFunctionCall",
"src": "24207:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "24200:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "23993:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "24001:3:10",
"type": ""
}
],
"src": "23859:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "24402:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "24412:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24424:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24435:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24420:3:10"
},
"nodeType": "YulFunctionCall",
"src": "24420:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "24412:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24459:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24470:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24455:3:10"
},
"nodeType": "YulFunctionCall",
"src": "24455:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "24478:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24484:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "24474:3:10"
},
"nodeType": "YulFunctionCall",
"src": "24474:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "24448:6:10"
},
"nodeType": "YulFunctionCall",
"src": "24448:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "24448:47:10"
},
{
"nodeType": "YulAssignment",
"src": "24504:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "24638:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "24512:124:10"
},
"nodeType": "YulFunctionCall",
"src": "24512:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "24504:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "24382:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "24397:4:10",
"type": ""
}
],
"src": "24231:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "24684:152:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24701:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24704:77:10",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "24694:6:10"
},
"nodeType": "YulFunctionCall",
"src": "24694:88:10"
},
"nodeType": "YulExpressionStatement",
"src": "24694:88:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24798:1:10",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24801:4:10",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "24791:6:10"
},
"nodeType": "YulFunctionCall",
"src": "24791:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "24791:15:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24822:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24825:4:10",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "24815:6:10"
},
"nodeType": "YulFunctionCall",
"src": "24815:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "24815:15:10"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "24656:180:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "24893:269:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "24903:22:10",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "24917:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24923:1:10",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "24913:3:10"
},
"nodeType": "YulFunctionCall",
"src": "24913:12:10"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "24903:6:10"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "24934:38:10",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "24964:4:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24970:1:10",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "24960:3:10"
},
"nodeType": "YulFunctionCall",
"src": "24960:12:10"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "24938:18:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "25011:51:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "25025:27:10",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "25039:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25047:4:10",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "25035:3:10"
},
"nodeType": "YulFunctionCall",
"src": "25035:17:10"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "25025:6:10"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "24991:18:10"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "24984:6:10"
},
"nodeType": "YulFunctionCall",
"src": "24984:26:10"
},
"nodeType": "YulIf",
"src": "24981:81:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "25114:42:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "25128:16:10"
},
"nodeType": "YulFunctionCall",
"src": "25128:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "25128:18:10"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "25078:18:10"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "25101:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25109:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "25098:2:10"
},
"nodeType": "YulFunctionCall",
"src": "25098:14:10"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "25075:2:10"
},
"nodeType": "YulFunctionCall",
"src": "25075:38:10"
},
"nodeType": "YulIf",
"src": "25072:84:10"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "24877:4:10",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "24886:6:10",
"type": ""
}
],
"src": "24842:320:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "25282:34:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "25292:18:10",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "25307:3:10"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "25292:11:10"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "25254:3:10",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "25259:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "25270:11:10",
"type": ""
}
],
"src": "25168:148:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "25376:87:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "25386:11:10",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "25394:3:10"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "25386:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25414:1:10",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "25417:3:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "25407:6:10"
},
"nodeType": "YulFunctionCall",
"src": "25407:14:10"
},
"nodeType": "YulExpressionStatement",
"src": "25407:14:10"
},
{
"nodeType": "YulAssignment",
"src": "25430:26:10",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25448:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25451:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "25438:9:10"
},
"nodeType": "YulFunctionCall",
"src": "25438:18:10"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "25430:4:10"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "25363:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "25371:4:10",
"type": ""
}
],
"src": "25322:141:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "25600:738:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "25610:29:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "25633:5:10"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "25627:5:10"
},
"nodeType": "YulFunctionCall",
"src": "25627:12:10"
},
"variables": [
{
"name": "slotValue",
"nodeType": "YulTypedName",
"src": "25614:9:10",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "25648:50:10",
"value": {
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "25688:9:10"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "25662:25:10"
},
"nodeType": "YulFunctionCall",
"src": "25662:36:10"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "25652:6:10",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "25707:96:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "25791:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "25796:6:10"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "25714:76:10"
},
"nodeType": "YulFunctionCall",
"src": "25714:89:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "25707:3:10"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "25852:130:10",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "25905:3:10"
},
{
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "25914:9:10"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25929:4:10",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "25925:3:10"
},
"nodeType": "YulFunctionCall",
"src": "25925:9:10"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "25910:3:10"
},
"nodeType": "YulFunctionCall",
"src": "25910:25:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "25898:6:10"
},
"nodeType": "YulFunctionCall",
"src": "25898:38:10"
},
"nodeType": "YulExpressionStatement",
"src": "25898:38:10"
},
{
"nodeType": "YulAssignment",
"src": "25949:23:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "25960:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "25965:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "25956:3:10"
},
"nodeType": "YulFunctionCall",
"src": "25956:16:10"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "25949:3:10"
}
]
}
]
},
"nodeType": "YulCase",
"src": "25845:137:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "25850:1:10",
"type": "",
"value": "0"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "25998:334:10",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "26043:53:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "26090:5:10"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "26058:31:10"
},
"nodeType": "YulFunctionCall",
"src": "26058:38:10"
},
"variables": [
{
"name": "dataPos",
"nodeType": "YulTypedName",
"src": "26047:7:10",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "26109:10:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "26118:1:10",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "26113:1:10",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "26176:110:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "26205:3:10"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "26210:1:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26201:3:10"
},
"nodeType": "YulFunctionCall",
"src": "26201:11:10"
},
{
"arguments": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "26220:7:10"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "26214:5:10"
},
"nodeType": "YulFunctionCall",
"src": "26214:14:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "26194:6:10"
},
"nodeType": "YulFunctionCall",
"src": "26194:35:10"
},
"nodeType": "YulExpressionStatement",
"src": "26194:35:10"
},
{
"nodeType": "YulAssignment",
"src": "26246:26:10",
"value": {
"arguments": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "26261:7:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "26270:1:10",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26257:3:10"
},
"nodeType": "YulFunctionCall",
"src": "26257:15:10"
},
"variableNames": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "26246:7:10"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "26143:1:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "26146:6:10"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "26140:2:10"
},
"nodeType": "YulFunctionCall",
"src": "26140:13:10"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "26154:21:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "26156:17:10",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "26165:1:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "26168:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26161:3:10"
},
"nodeType": "YulFunctionCall",
"src": "26161:12:10"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "26156:1:10"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "26136:3:10",
"statements": []
},
"src": "26132:154:10"
},
{
"nodeType": "YulAssignment",
"src": "26299:23:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "26310:3:10"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "26315:6:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26306:3:10"
},
"nodeType": "YulFunctionCall",
"src": "26306:16:10"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "26299:3:10"
}
]
}
]
},
"nodeType": "YulCase",
"src": "25991:341:10",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "25996:1:10",
"type": "",
"value": "1"
}
}
],
"expression": {
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "25823:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25834:1:10",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "25819:3:10"
},
"nodeType": "YulFunctionCall",
"src": "25819:17:10"
},
"nodeType": "YulSwitch",
"src": "25812:520:10"
}
]
},
"name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "25581:5:10",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "25588:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "25596:3:10",
"type": ""
}
],
"src": "25493:845:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "26522:245:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "26533:99:10",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "26619:6:10"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "26628:3:10"
}
],
"functionName": {
"name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "26540:78:10"
},
"nodeType": "YulFunctionCall",
"src": "26540:92:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "26533:3:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "26642:99:10",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "26728:6:10"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "26737:3:10"
}
],
"functionName": {
"name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "26649:78:10"
},
"nodeType": "YulFunctionCall",
"src": "26649:92:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "26642:3:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "26751:10:10",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "26758:3:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "26751:3:10"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "26493:3:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "26499:6:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "26507:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "26518:3:10",
"type": ""
}
],
"src": "26344:423:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "26879:131:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "26901:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "26909:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26897:3:10"
},
"nodeType": "YulFunctionCall",
"src": "26897:14:10"
},
{
"hexValue": "455243313135353a207472616e736665722063616c6c6572206973206e6f7420",
"kind": "string",
"nodeType": "YulLiteral",
"src": "26913:34:10",
"type": "",
"value": "ERC1155: transfer caller is not "
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "26890:6:10"
},
"nodeType": "YulFunctionCall",
"src": "26890:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "26890:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "26969:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "26977:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26965:3:10"
},
"nodeType": "YulFunctionCall",
"src": "26965:15:10"
},
{
"hexValue": "6f776e6572206e6f7220617070726f766564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "26982:20:10",
"type": "",
"value": "owner nor approved"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "26958:6:10"
},
"nodeType": "YulFunctionCall",
"src": "26958:45:10"
},
"nodeType": "YulExpressionStatement",
"src": "26958:45:10"
}
]
},
"name": "store_literal_in_memory_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "26871:6:10",
"type": ""
}
],
"src": "26773:237:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "27162:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "27172:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "27238:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "27243:2:10",
"type": "",
"value": "50"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "27179:58:10"
},
"nodeType": "YulFunctionCall",
"src": "27179:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "27172:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "27344:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686",
"nodeType": "YulIdentifier",
"src": "27255:88:10"
},
"nodeType": "YulFunctionCall",
"src": "27255:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "27255:93:10"
},
{
"nodeType": "YulAssignment",
"src": "27357:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "27368:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "27373:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27364:3:10"
},
"nodeType": "YulFunctionCall",
"src": "27364:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "27357:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "27150:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "27158:3:10",
"type": ""
}
],
"src": "27016:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "27559:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "27569:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27581:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "27592:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27577:3:10"
},
"nodeType": "YulFunctionCall",
"src": "27577:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "27569:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27616:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "27627:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27612:3:10"
},
"nodeType": "YulFunctionCall",
"src": "27612:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "27635:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27641:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "27631:3:10"
},
"nodeType": "YulFunctionCall",
"src": "27631:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "27605:6:10"
},
"nodeType": "YulFunctionCall",
"src": "27605:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "27605:47:10"
},
{
"nodeType": "YulAssignment",
"src": "27661:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "27795:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "27669:124:10"
},
"nodeType": "YulFunctionCall",
"src": "27669:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "27661:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "27539:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "27554:4:10",
"type": ""
}
],
"src": "27388:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "27919:122:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "27941:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "27949:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27937:3:10"
},
"nodeType": "YulFunctionCall",
"src": "27937:14:10"
},
{
"hexValue": "455243313135353a206163636f756e747320616e6420696473206c656e677468",
"kind": "string",
"nodeType": "YulLiteral",
"src": "27953:34:10",
"type": "",
"value": "ERC1155: accounts and ids length"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "27930:6:10"
},
"nodeType": "YulFunctionCall",
"src": "27930:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "27930:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "28009:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28017:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "28005:3:10"
},
"nodeType": "YulFunctionCall",
"src": "28005:15:10"
},
{
"hexValue": "206d69736d61746368",
"kind": "string",
"nodeType": "YulLiteral",
"src": "28022:11:10",
"type": "",
"value": " mismatch"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "27998:6:10"
},
"nodeType": "YulFunctionCall",
"src": "27998:36:10"
},
"nodeType": "YulExpressionStatement",
"src": "27998:36:10"
}
]
},
"name": "store_literal_in_memory_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "27911:6:10",
"type": ""
}
],
"src": "27813:228:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "28193:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "28203:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "28269:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28274:2:10",
"type": "",
"value": "41"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "28210:58:10"
},
"nodeType": "YulFunctionCall",
"src": "28210:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "28203:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "28375:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5",
"nodeType": "YulIdentifier",
"src": "28286:88:10"
},
"nodeType": "YulFunctionCall",
"src": "28286:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "28286:93:10"
},
{
"nodeType": "YulAssignment",
"src": "28388:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "28399:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28404:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "28395:3:10"
},
"nodeType": "YulFunctionCall",
"src": "28395:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "28388:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "28181:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "28189:3:10",
"type": ""
}
],
"src": "28047:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "28590:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "28600:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "28612:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28623:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "28608:3:10"
},
"nodeType": "YulFunctionCall",
"src": "28608:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "28600:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "28647:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28658:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "28643:3:10"
},
"nodeType": "YulFunctionCall",
"src": "28643:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "28666:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "28672:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "28662:3:10"
},
"nodeType": "YulFunctionCall",
"src": "28662:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "28636:6:10"
},
"nodeType": "YulFunctionCall",
"src": "28636:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "28636:47:10"
},
{
"nodeType": "YulAssignment",
"src": "28692:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "28826:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "28700:124:10"
},
"nodeType": "YulFunctionCall",
"src": "28700:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "28692:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "28570:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "28585:4:10",
"type": ""
}
],
"src": "28419:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "28872:152:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28889:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28892:77:10",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "28882:6:10"
},
"nodeType": "YulFunctionCall",
"src": "28882:88:10"
},
"nodeType": "YulExpressionStatement",
"src": "28882:88:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28986:1:10",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28989:4:10",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "28979:6:10"
},
"nodeType": "YulFunctionCall",
"src": "28979:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "28979:15:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29010:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29013:4:10",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "29003:6:10"
},
"nodeType": "YulFunctionCall",
"src": "29003:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "29003:15:10"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "28844:180:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "29058:152:10",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29075:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29078:77:10",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "29068:6:10"
},
"nodeType": "YulFunctionCall",
"src": "29068:88:10"
},
"nodeType": "YulExpressionStatement",
"src": "29068:88:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29172:1:10",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29175:4:10",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "29165:6:10"
},
"nodeType": "YulFunctionCall",
"src": "29165:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "29165:15:10"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29196:1:10",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29199:4:10",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "29189:6:10"
},
"nodeType": "YulFunctionCall",
"src": "29189:15:10"
},
"nodeType": "YulExpressionStatement",
"src": "29189:15:10"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "29030:180:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "29259:190:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "29269:33:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "29296:5:10"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "29278:17:10"
},
"nodeType": "YulFunctionCall",
"src": "29278:24:10"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "29269:5:10"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "29392:22:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "29394:16:10"
},
"nodeType": "YulFunctionCall",
"src": "29394:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "29394:18:10"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "29317:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29324:66:10",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "29314:2:10"
},
"nodeType": "YulFunctionCall",
"src": "29314:77:10"
},
"nodeType": "YulIf",
"src": "29311:103:10"
},
{
"nodeType": "YulAssignment",
"src": "29423:20:10",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "29434:5:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29441:1:10",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "29430:3:10"
},
"nodeType": "YulFunctionCall",
"src": "29430:13:10"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "29423:3:10"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "29245:5:10",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "29255:3:10",
"type": ""
}
],
"src": "29216:233:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "29561:122:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "29583:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29591:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "29579:3:10"
},
"nodeType": "YulFunctionCall",
"src": "29579:14:10"
},
{
"hexValue": "455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f72",
"kind": "string",
"nodeType": "YulLiteral",
"src": "29595:34:10",
"type": "",
"value": "ERC1155: caller is not owner nor"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "29572:6:10"
},
"nodeType": "YulFunctionCall",
"src": "29572:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "29572:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "29651:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29659:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "29647:3:10"
},
"nodeType": "YulFunctionCall",
"src": "29647:15:10"
},
{
"hexValue": "20617070726f766564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "29664:11:10",
"type": "",
"value": " approved"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "29640:6:10"
},
"nodeType": "YulFunctionCall",
"src": "29640:36:10"
},
"nodeType": "YulExpressionStatement",
"src": "29640:36:10"
}
]
},
"name": "store_literal_in_memory_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "29553:6:10",
"type": ""
}
],
"src": "29455:228:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "29835:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "29845:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "29911:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29916:2:10",
"type": "",
"value": "41"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "29852:58:10"
},
"nodeType": "YulFunctionCall",
"src": "29852:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "29845:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "30017:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a",
"nodeType": "YulIdentifier",
"src": "29928:88:10"
},
"nodeType": "YulFunctionCall",
"src": "29928:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "29928:93:10"
},
{
"nodeType": "YulAssignment",
"src": "30030:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "30041:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30046:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30037:3:10"
},
"nodeType": "YulFunctionCall",
"src": "30037:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "30030:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "29823:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "29831:3:10",
"type": ""
}
],
"src": "29689:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "30232:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "30242:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30254:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30265:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30250:3:10"
},
"nodeType": "YulFunctionCall",
"src": "30250:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "30242:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30289:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30300:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30285:3:10"
},
"nodeType": "YulFunctionCall",
"src": "30285:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "30308:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30314:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "30304:3:10"
},
"nodeType": "YulFunctionCall",
"src": "30304:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "30278:6:10"
},
"nodeType": "YulFunctionCall",
"src": "30278:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "30278:47:10"
},
{
"nodeType": "YulAssignment",
"src": "30334:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "30468:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "30342:124:10"
},
"nodeType": "YulFunctionCall",
"src": "30342:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "30334:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "30212:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "30227:4:10",
"type": ""
}
],
"src": "30061:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "30592:121:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "30614:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30622:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30610:3:10"
},
"nodeType": "YulFunctionCall",
"src": "30610:14:10"
},
{
"hexValue": "455243313135353a2069647320616e6420616d6f756e7473206c656e67746820",
"kind": "string",
"nodeType": "YulLiteral",
"src": "30626:34:10",
"type": "",
"value": "ERC1155: ids and amounts length "
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "30603:6:10"
},
"nodeType": "YulFunctionCall",
"src": "30603:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "30603:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "30682:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30690:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30678:3:10"
},
"nodeType": "YulFunctionCall",
"src": "30678:15:10"
},
{
"hexValue": "6d69736d61746368",
"kind": "string",
"nodeType": "YulLiteral",
"src": "30695:10:10",
"type": "",
"value": "mismatch"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "30671:6:10"
},
"nodeType": "YulFunctionCall",
"src": "30671:35:10"
},
"nodeType": "YulExpressionStatement",
"src": "30671:35:10"
}
]
},
"name": "store_literal_in_memory_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "30584:6:10",
"type": ""
}
],
"src": "30486:227:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "30865:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "30875:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "30941:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30946:2:10",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "30882:58:10"
},
"nodeType": "YulFunctionCall",
"src": "30882:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "30875:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "31047:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807",
"nodeType": "YulIdentifier",
"src": "30958:88:10"
},
"nodeType": "YulFunctionCall",
"src": "30958:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "30958:93:10"
},
{
"nodeType": "YulAssignment",
"src": "31060:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "31071:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "31076:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31067:3:10"
},
"nodeType": "YulFunctionCall",
"src": "31067:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "31060:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "30853:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "30861:3:10",
"type": ""
}
],
"src": "30719:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "31262:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "31272:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31284:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "31295:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31280:3:10"
},
"nodeType": "YulFunctionCall",
"src": "31280:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "31272:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31319:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "31330:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31315:3:10"
},
"nodeType": "YulFunctionCall",
"src": "31315:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "31338:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31344:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "31334:3:10"
},
"nodeType": "YulFunctionCall",
"src": "31334:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "31308:6:10"
},
"nodeType": "YulFunctionCall",
"src": "31308:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "31308:47:10"
},
{
"nodeType": "YulAssignment",
"src": "31364:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "31498:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "31372:124:10"
},
"nodeType": "YulFunctionCall",
"src": "31372:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "31364:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "31242:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "31257:4:10",
"type": ""
}
],
"src": "31091:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "31622:118:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "31644:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "31652:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31640:3:10"
},
"nodeType": "YulFunctionCall",
"src": "31640:14:10"
},
{
"hexValue": "455243313135353a207472616e7366657220746f20746865207a65726f206164",
"kind": "string",
"nodeType": "YulLiteral",
"src": "31656:34:10",
"type": "",
"value": "ERC1155: transfer to the zero ad"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "31633:6:10"
},
"nodeType": "YulFunctionCall",
"src": "31633:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "31633:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "31712:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "31720:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31708:3:10"
},
"nodeType": "YulFunctionCall",
"src": "31708:15:10"
},
{
"hexValue": "6472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "31725:7:10",
"type": "",
"value": "dress"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "31701:6:10"
},
"nodeType": "YulFunctionCall",
"src": "31701:32:10"
},
"nodeType": "YulExpressionStatement",
"src": "31701:32:10"
}
]
},
"name": "store_literal_in_memory_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "31614:6:10",
"type": ""
}
],
"src": "31516:224:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "31892:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "31902:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "31968:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "31973:2:10",
"type": "",
"value": "37"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "31909:58:10"
},
"nodeType": "YulFunctionCall",
"src": "31909:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "31902:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "32074:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d",
"nodeType": "YulIdentifier",
"src": "31985:88:10"
},
"nodeType": "YulFunctionCall",
"src": "31985:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "31985:93:10"
},
{
"nodeType": "YulAssignment",
"src": "32087:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "32098:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "32103:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32094:3:10"
},
"nodeType": "YulFunctionCall",
"src": "32094:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "32087:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "31880:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "31888:3:10",
"type": ""
}
],
"src": "31746:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "32289:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "32299:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32311:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "32322:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32307:3:10"
},
"nodeType": "YulFunctionCall",
"src": "32307:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "32299:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32346:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "32357:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32342:3:10"
},
"nodeType": "YulFunctionCall",
"src": "32342:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "32365:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32371:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "32361:3:10"
},
"nodeType": "YulFunctionCall",
"src": "32361:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "32335:6:10"
},
"nodeType": "YulFunctionCall",
"src": "32335:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "32335:47:10"
},
{
"nodeType": "YulAssignment",
"src": "32391:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "32525:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "32399:124:10"
},
"nodeType": "YulFunctionCall",
"src": "32399:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "32391:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "32269:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "32284:4:10",
"type": ""
}
],
"src": "32118:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "32649:123:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "32671:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "32679:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32667:3:10"
},
"nodeType": "YulFunctionCall",
"src": "32667:14:10"
},
{
"hexValue": "455243313135353a20696e73756666696369656e742062616c616e636520666f",
"kind": "string",
"nodeType": "YulLiteral",
"src": "32683:34:10",
"type": "",
"value": "ERC1155: insufficient balance fo"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "32660:6:10"
},
"nodeType": "YulFunctionCall",
"src": "32660:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "32660:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "32739:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "32747:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32735:3:10"
},
"nodeType": "YulFunctionCall",
"src": "32735:15:10"
},
{
"hexValue": "72207472616e73666572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "32752:12:10",
"type": "",
"value": "r transfer"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "32728:6:10"
},
"nodeType": "YulFunctionCall",
"src": "32728:37:10"
},
"nodeType": "YulExpressionStatement",
"src": "32728:37:10"
}
]
},
"name": "store_literal_in_memory_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "32641:6:10",
"type": ""
}
],
"src": "32543:229:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "32924:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "32934:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "33000:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33005:2:10",
"type": "",
"value": "42"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "32941:58:10"
},
"nodeType": "YulFunctionCall",
"src": "32941:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "32934:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "33106:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf",
"nodeType": "YulIdentifier",
"src": "33017:88:10"
},
"nodeType": "YulFunctionCall",
"src": "33017:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "33017:93:10"
},
{
"nodeType": "YulAssignment",
"src": "33119:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "33130:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33135:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33126:3:10"
},
"nodeType": "YulFunctionCall",
"src": "33126:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "33119:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "32912:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "32920:3:10",
"type": ""
}
],
"src": "32778:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "33321:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "33331:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "33343:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33354:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33339:3:10"
},
"nodeType": "YulFunctionCall",
"src": "33339:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "33331:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "33378:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33389:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33374:3:10"
},
"nodeType": "YulFunctionCall",
"src": "33374:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "33397:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "33403:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "33393:3:10"
},
"nodeType": "YulFunctionCall",
"src": "33393:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "33367:6:10"
},
"nodeType": "YulFunctionCall",
"src": "33367:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "33367:47:10"
},
{
"nodeType": "YulAssignment",
"src": "33423:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "33557:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "33431:124:10"
},
"nodeType": "YulFunctionCall",
"src": "33431:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "33423:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "33301:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "33316:4:10",
"type": ""
}
],
"src": "33150:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "33619:261:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "33629:25:10",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "33652:1:10"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "33634:17:10"
},
"nodeType": "YulFunctionCall",
"src": "33634:20:10"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "33629:1:10"
}
]
},
{
"nodeType": "YulAssignment",
"src": "33663:25:10",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "33686:1:10"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "33668:17:10"
},
"nodeType": "YulFunctionCall",
"src": "33668:20:10"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "33663:1:10"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "33826:22:10",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "33828:16:10"
},
"nodeType": "YulFunctionCall",
"src": "33828:18:10"
},
"nodeType": "YulExpressionStatement",
"src": "33828:18:10"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "33747:1:10"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33754:66:10",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "33822:1:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "33750:3:10"
},
"nodeType": "YulFunctionCall",
"src": "33750:74:10"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "33744:2:10"
},
"nodeType": "YulFunctionCall",
"src": "33744:81:10"
},
"nodeType": "YulIf",
"src": "33741:107:10"
},
{
"nodeType": "YulAssignment",
"src": "33858:16:10",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "33869:1:10"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "33872:1:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33865:3:10"
},
"nodeType": "YulFunctionCall",
"src": "33865:9:10"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "33858:3:10"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "33606:1:10",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "33609:1:10",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "33615:3:10",
"type": ""
}
],
"src": "33575:305:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "34112:408:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "34122:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "34134:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34145:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34130:3:10"
},
"nodeType": "YulFunctionCall",
"src": "34130:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34122:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "34169:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34180:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34165:3:10"
},
"nodeType": "YulFunctionCall",
"src": "34165:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34188:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "34194:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "34184:3:10"
},
"nodeType": "YulFunctionCall",
"src": "34184:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "34158:6:10"
},
"nodeType": "YulFunctionCall",
"src": "34158:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "34158:47:10"
},
{
"nodeType": "YulAssignment",
"src": "34214:116:10",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "34316:6:10"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34325:4:10"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "34222:93:10"
},
"nodeType": "YulFunctionCall",
"src": "34222:108:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34214:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "34351:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34362:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34347:3:10"
},
"nodeType": "YulFunctionCall",
"src": "34347:18:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34371:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "34377:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "34367:3:10"
},
"nodeType": "YulFunctionCall",
"src": "34367:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "34340:6:10"
},
"nodeType": "YulFunctionCall",
"src": "34340:48:10"
},
"nodeType": "YulExpressionStatement",
"src": "34340:48:10"
},
{
"nodeType": "YulAssignment",
"src": "34397:116:10",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "34499:6:10"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34508:4:10"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "34405:93:10"
},
"nodeType": "YulFunctionCall",
"src": "34405:108:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34397:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "34076:9:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "34088:6:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "34096:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "34107:4:10",
"type": ""
}
],
"src": "33886:634:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "34632:122:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "34654:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34662:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34650:3:10"
},
"nodeType": "YulFunctionCall",
"src": "34650:14:10"
},
{
"hexValue": "455243313135353a2073657474696e6720617070726f76616c20737461747573",
"kind": "string",
"nodeType": "YulLiteral",
"src": "34666:34:10",
"type": "",
"value": "ERC1155: setting approval status"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "34643:6:10"
},
"nodeType": "YulFunctionCall",
"src": "34643:58:10"
},
"nodeType": "YulExpressionStatement",
"src": "34643:58:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "34722:6:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34730:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34718:3:10"
},
"nodeType": "YulFunctionCall",
"src": "34718:15:10"
},
{
"hexValue": "20666f722073656c66",
"kind": "string",
"nodeType": "YulLiteral",
"src": "34735:11:10",
"type": "",
"value": " for self"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "34711:6:10"
},
"nodeType": "YulFunctionCall",
"src": "34711:36:10"
},
"nodeType": "YulExpressionStatement",
"src": "34711:36:10"
}
]
},
"name": "store_literal_in_memory_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "34624:6:10",
"type": ""
}
],
"src": "34526:228:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "34906:220:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "34916:74:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "34982:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34987:2:10",
"type": "",
"value": "41"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "34923:58:10"
},
"nodeType": "YulFunctionCall",
"src": "34923:67:10"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "34916:3:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "35088:3:10"
}
],
"functionName": {
"name": "store_literal_in_memory_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2",
"nodeType": "YulIdentifier",
"src": "34999:88:10"
},
"nodeType": "YulFunctionCall",
"src": "34999:93:10"
},
"nodeType": "YulExpressionStatement",
"src": "34999:93:10"
},
{
"nodeType": "YulAssignment",
"src": "35101:19:10",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "35112:3:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35117:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35108:3:10"
},
"nodeType": "YulFunctionCall",
"src": "35108:12:10"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "35101:3:10"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "34894:3:10",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "34902:3:10",
"type": ""
}
],
"src": "34760:366:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "35303:248:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "35313:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35325:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35336:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35321:3:10"
},
"nodeType": "YulFunctionCall",
"src": "35321:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35313:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35360:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35371:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35356:3:10"
},
"nodeType": "YulFunctionCall",
"src": "35356:17:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35379:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35385:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "35375:3:10"
},
"nodeType": "YulFunctionCall",
"src": "35375:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "35349:6:10"
},
"nodeType": "YulFunctionCall",
"src": "35349:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "35349:47:10"
},
{
"nodeType": "YulAssignment",
"src": "35405:139:10",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35539:4:10"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "35413:124:10"
},
"nodeType": "YulFunctionCall",
"src": "35413:131:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35405:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "35283:9:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "35298:4:10",
"type": ""
}
],
"src": "35132:419:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "35683:206:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "35693:26:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35705:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35716:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35701:3:10"
},
"nodeType": "YulFunctionCall",
"src": "35701:18:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35693:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "35773:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35786:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35797:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35782:3:10"
},
"nodeType": "YulFunctionCall",
"src": "35782:17:10"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "35729:43:10"
},
"nodeType": "YulFunctionCall",
"src": "35729:71:10"
},
"nodeType": "YulExpressionStatement",
"src": "35729:71:10"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "35854:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35867:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35878:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35863:3:10"
},
"nodeType": "YulFunctionCall",
"src": "35863:18:10"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "35810:43:10"
},
"nodeType": "YulFunctionCall",
"src": "35810:72:10"
},
"nodeType": "YulExpressionStatement",
"src": "35810:72:10"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "35647:9:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "35659:6:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "35667:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "35678:4:10",
"type": ""
}
],
"src": "35557:332:10"
},
{
"body": {
"nodeType": "YulBlock",
"src": "36223:725:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "36233:27:10",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36245:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36256:3:10",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36241:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36241:19:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36233:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "36314:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36327:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36338:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36323:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36323:17:10"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "36270:43:10"
},
"nodeType": "YulFunctionCall",
"src": "36270:71:10"
},
"nodeType": "YulExpressionStatement",
"src": "36270:71:10"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "36395:6:10"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36408:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36419:2:10",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36404:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36404:18:10"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "36351:43:10"
},
"nodeType": "YulFunctionCall",
"src": "36351:72:10"
},
"nodeType": "YulExpressionStatement",
"src": "36351:72:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36444:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36455:2:10",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36440:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36440:18:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36464:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36470:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "36460:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36460:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "36433:6:10"
},
"nodeType": "YulFunctionCall",
"src": "36433:48:10"
},
"nodeType": "YulExpressionStatement",
"src": "36433:48:10"
},
{
"nodeType": "YulAssignment",
"src": "36490:116:10",
"value": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "36592:6:10"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36601:4:10"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "36498:93:10"
},
"nodeType": "YulFunctionCall",
"src": "36498:108:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36490:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36627:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36638:2:10",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36623:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36623:18:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36647:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36653:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "36643:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36643:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "36616:6:10"
},
"nodeType": "YulFunctionCall",
"src": "36616:48:10"
},
"nodeType": "YulExpressionStatement",
"src": "36616:48:10"
},
{
"nodeType": "YulAssignment",
"src": "36673:116:10",
"value": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "36775:6:10"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36784:4:10"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "36681:93:10"
},
"nodeType": "YulFunctionCall",
"src": "36681:108:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36673:4:10"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36810:9:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36821:3:10",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36806:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36806:19:10"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36831:4:10"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36837:9:10"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "36827:3:10"
},
"nodeType": "YulFunctionCall",
"src": "36827:20:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "36799:6:10"
},
"nodeType": "YulFunctionCall",
"src": "36799:49:10"
},
"nodeType": "YulExpressionStatement",
"src": "36799:49:10"
},
{
"nodeType": "YulAssignment",
"src": "36857:84:10",
"value": {
"arguments": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "36927:6:10"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36936:4:10"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "36865:61:10"
},
"nodeType": "YulFunctionCall",
"src": "36865:76:10"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "36857:4:10"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "36163:9:10",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "36175:6:10",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "36183:6:10",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "36191:6:10",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "36199:6:10",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "36207:6:10",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "36218:4:10",
"type": ""
}
],
"src": "35895:1053:10"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 160))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value5 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\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 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 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_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_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: balance query for the z\")\n\n mstore(add(memPtr, 32), \"ero address\")\n\n }\n\n function abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__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_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack( tail)\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 array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function shift_right_224_unsigned(value) -> newValue {\n newValue :=\n\n shr(224, value)\n\n }\n\n function return_data_selector() -> sig {\n if gt(returndatasize(), 3) {\n returndatacopy(0, 0, 4)\n sig := shift_right_224_unsigned(mload(0))\n }\n }\n\n function try_decode_error_message() -> ret {\n if lt(returndatasize(), 0x44) { leave }\n\n let data := allocate_unbounded()\n returndatacopy(data, 4, sub(returndatasize(), 4))\n\n let offset := mload(data)\n if or(\n gt(offset, 0xffffffffffffffff),\n gt(add(offset, 0x24), returndatasize())\n ) {\n leave\n }\n\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, 0xffffffffffffffff) { leave }\n\n let end := add(add(msg, 0x20), length)\n if gt(end, add(data, sub(returndatasize(), 4))) { leave }\n\n finalize_allocation(data, add(offset, add(0x20, length)))\n ret := msg\n }\n\n function store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: transfer to non ERC1155\")\n\n mstore(add(memPtr, 32), \"Receiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 52)\n store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__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_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: ERC1155Receiver rejecte\")\n\n mstore(add(memPtr, 32), \"d tokens\")\n\n }\n\n function abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__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_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, length)\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: transfer caller is not \")\n\n mstore(add(memPtr, 32), \"owner nor approved\")\n\n }\n\n function abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__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_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: accounts and ids length\")\n\n mstore(add(memPtr, 32), \" mismatch\")\n\n }\n\n function abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__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_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function store_literal_in_memory_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: caller is not owner nor\")\n\n mstore(add(memPtr, 32), \" approved\")\n\n }\n\n function abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__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_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: ids and amounts length \")\n\n mstore(add(memPtr, 32), \"mismatch\")\n\n }\n\n function abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__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_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: transfer to the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__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_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r transfer\")\n\n }\n\n function abi_encode_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__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_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\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 abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function store_literal_in_memory_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1155: setting approval status\")\n\n mstore(add(memPtr, 32), \" for self\")\n\n }\n\n function abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__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_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n}\n",
"id": 10,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100b35760003560e01c80634e1273f4116100715780634e1273f4146101b0578063704fe710146101e05780639abc832014610210578063a22cb4651461022e578063e985e9c51461024a578063f242432a1461027a576100b3565b8062fdd58e146100b857806301ffc9a7146100e8578063084e9e24146101185780630e89341c146101345780631f320331146101645780632eb2c2d614610194575b600080fd5b6100d260048036038101906100cd9190611573565b610296565b6040516100df91906115c2565b60405180910390f35b61010260048036038101906100fd9190611635565b61035e565b60405161010f919061167d565b60405180910390f35b610132600480360381019061012d91906117de565b610440565b005b61014e60048036038101906101499190611887565b610617565b60405161015b919061193c565b60405180910390f35b61017e6004803603810190610179919061195e565b610655565b60405161018b91906115c2565b60405180910390f35b6101ae60048036038101906101a99190611a66565b61067a565b005b6101ca60048036038101906101c59190611bf8565b61071b565b6040516101d79190611d2e565b60405180910390f35b6101fa60048036038101906101f59190611887565b610834565b604051610207919061193c565b60405180910390f35b6102186108d4565b604051610225919061193c565b60405180910390f35b61024860048036038101906102439190611d7c565b610962565b005b610264600480360381019061025f9190611dbc565b610978565b604051610271919061167d565b60405180910390f35b610294600480360381019061028f9190611dfc565b610a0c565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fd90611f05565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061042957507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610439575061043882610aad565b5b9050919050565b61045f8473ffffffffffffffffffffffffffffffffffffffff16610b17565b1561060f578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016104a5959493929190611f89565b6020604051808303816000875af19250505080156104e157506040513d601f19601f820116820180604052508101906104de9190611ff8565b60015b610586576104ed612032565b806308c379a0036105495750610501612054565b8061050c575061054b565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610540919061193c565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90612156565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461060d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610604906121e8565b60405180910390fd5b505b505050505050565b606060036001600084815260200190815260200160002060405160200161063f929190612307565b6040516020818303038152906040529050919050565b6000602052816000526040600020602052806000526040600020600091509150505481565b610682610b3a565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106c857506106c7856106c2610b3a565b610978565b5b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe9061239d565b60405180910390fd5b6107148585858585610b42565b5050505050565b60608151835114610761576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107589061242f565b60405180910390fd5b6000835167ffffffffffffffff81111561077e5761077d6116b3565b5b6040519080825280602002602001820160405280156107ac5781602001602082028036833780820191505090505b50905060005b8451811015610829576107f98582815181106107d1576107d061244f565b5b60200260200101518583815181106107ec576107eb61244f565b5b6020026020010151610296565b82828151811061080c5761080b61244f565b5b60200260200101818152505080610822906124ad565b90506107b2565b508091505092915050565b6001602052806000526040600020600091509050805461085390612237565b80601f016020809104026020016040519081016040528092919081815260200182805461087f90612237565b80156108cc5780601f106108a1576101008083540402835291602001916108cc565b820191906000526020600020905b8154815290600101906020018083116108af57829003601f168201915b505050505081565b600380546108e190612237565b80601f016020809104026020016040519081016040528092919081815260200182805461090d90612237565b801561095a5780601f1061092f5761010080835404028352916020019161095a565b820191906000526020600020905b81548152906001019060200180831161093d57829003601f168201915b505050505081565b61097461096d610b3a565b8383610e63565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610a14610b3a565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610a5a5750610a5985610a54610b3a565b610978565b5b610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9090612567565b60405180910390fd5b610aa68585858585610fcf565b5050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600033905090565b8151835114610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906125f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061268b565b60405180910390fd5b6000610bff610b3a565b9050610c0f81878787878761126a565b60005b8451811015610dc0576000858281518110610c3057610c2f61244f565b5b602002602001015190506000858381518110610c4f57610c4e61244f565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce79061271d565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610da5919061273d565b9250508190555050505080610db9906124ad565b9050610c12565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e37929190612793565b60405180910390a4610e4d818787878787611272565b610e5b81878787878761127a565b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec89061283c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610fc2919061167d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110359061268b565b60405180910390fd5b6000611048610b3a565b9050600061105585611451565b9050600061106285611451565b905061107283898985858961126a565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111009061271d565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111be919061273d565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a60405161123b92919061285c565b60405180910390a4611251848a8a86868a611272565b61125f848a8a8a8a8a610440565b505050505050505050565b505050505050565b505050505050565b6112998473ffffffffffffffffffffffffffffffffffffffff16610b17565b15611449578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016112df959493929190612885565b6020604051808303816000875af192505050801561131b57506040513d601f19601f820116820180604052508101906113189190611ff8565b60015b6113c057611327612032565b806308c379a003611383575061133b612054565b806113465750611385565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a919061193c565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790612156565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906121e8565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff8111156114705761146f6116b3565b5b60405190808252806020026020018201604052801561149e5781602001602082028036833780820191505090505b50905082816000815181106114b6576114b561244f565b5b60200260200101818152505080915050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061150a826114df565b9050919050565b61151a816114ff565b811461152557600080fd5b50565b60008135905061153781611511565b92915050565b6000819050919050565b6115508161153d565b811461155b57600080fd5b50565b60008135905061156d81611547565b92915050565b6000806040838503121561158a576115896114d5565b5b600061159885828601611528565b92505060206115a98582860161155e565b9150509250929050565b6115bc8161153d565b82525050565b60006020820190506115d760008301846115b3565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611612816115dd565b811461161d57600080fd5b50565b60008135905061162f81611609565b92915050565b60006020828403121561164b5761164a6114d5565b5b600061165984828501611620565b91505092915050565b60008115159050919050565b61167781611662565b82525050565b6000602082019050611692600083018461166e565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6116eb826116a2565b810181811067ffffffffffffffff8211171561170a576117096116b3565b5b80604052505050565b600061171d6114cb565b905061172982826116e2565b919050565b600067ffffffffffffffff821115611749576117486116b3565b5b611752826116a2565b9050602081019050919050565b82818337600083830152505050565b600061178161177c8461172e565b611713565b90508281526020810184848401111561179d5761179c61169d565b5b6117a884828561175f565b509392505050565b600082601f8301126117c5576117c4611698565b5b81356117d584826020860161176e565b91505092915050565b60008060008060008060c087890312156117fb576117fa6114d5565b5b600061180989828a01611528565b965050602061181a89828a01611528565b955050604061182b89828a01611528565b945050606061183c89828a0161155e565b935050608061184d89828a0161155e565b92505060a087013567ffffffffffffffff81111561186e5761186d6114da565b5b61187a89828a016117b0565b9150509295509295509295565b60006020828403121561189d5761189c6114d5565b5b60006118ab8482850161155e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118ee5780820151818401526020810190506118d3565b838111156118fd576000848401525b50505050565b600061190e826118b4565b61191881856118bf565b93506119288185602086016118d0565b611931816116a2565b840191505092915050565b600060208201905081810360008301526119568184611903565b905092915050565b60008060408385031215611975576119746114d5565b5b60006119838582860161155e565b925050602061199485828601611528565b9150509250929050565b600067ffffffffffffffff8211156119b9576119b86116b3565b5b602082029050602081019050919050565b600080fd5b60006119e26119dd8461199e565b611713565b90508083825260208201905060208402830185811115611a0557611a046119ca565b5b835b81811015611a2e5780611a1a888261155e565b845260208401935050602081019050611a07565b5050509392505050565b600082601f830112611a4d57611a4c611698565b5b8135611a5d8482602086016119cf565b91505092915050565b600080600080600060a08688031215611a8257611a816114d5565b5b6000611a9088828901611528565b9550506020611aa188828901611528565b945050604086013567ffffffffffffffff811115611ac257611ac16114da565b5b611ace88828901611a38565b935050606086013567ffffffffffffffff811115611aef57611aee6114da565b5b611afb88828901611a38565b925050608086013567ffffffffffffffff811115611b1c57611b1b6114da565b5b611b28888289016117b0565b9150509295509295909350565b600067ffffffffffffffff821115611b5057611b4f6116b3565b5b602082029050602081019050919050565b6000611b74611b6f84611b35565b611713565b90508083825260208201905060208402830185811115611b9757611b966119ca565b5b835b81811015611bc05780611bac8882611528565b845260208401935050602081019050611b99565b5050509392505050565b600082601f830112611bdf57611bde611698565b5b8135611bef848260208601611b61565b91505092915050565b60008060408385031215611c0f57611c0e6114d5565b5b600083013567ffffffffffffffff811115611c2d57611c2c6114da565b5b611c3985828601611bca565b925050602083013567ffffffffffffffff811115611c5a57611c596114da565b5b611c6685828601611a38565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ca58161153d565b82525050565b6000611cb78383611c9c565b60208301905092915050565b6000602082019050919050565b6000611cdb82611c70565b611ce58185611c7b565b9350611cf083611c8c565b8060005b83811015611d21578151611d088882611cab565b9750611d1383611cc3565b925050600181019050611cf4565b5085935050505092915050565b60006020820190508181036000830152611d488184611cd0565b905092915050565b611d5981611662565b8114611d6457600080fd5b50565b600081359050611d7681611d50565b92915050565b60008060408385031215611d9357611d926114d5565b5b6000611da185828601611528565b9250506020611db285828601611d67565b9150509250929050565b60008060408385031215611dd357611dd26114d5565b5b6000611de185828601611528565b9250506020611df285828601611528565b9150509250929050565b600080600080600060a08688031215611e1857611e176114d5565b5b6000611e2688828901611528565b9550506020611e3788828901611528565b9450506040611e488882890161155e565b9350506060611e598882890161155e565b925050608086013567ffffffffffffffff811115611e7a57611e796114da565b5b611e86888289016117b0565b9150509295509295909350565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000611eef602b836118bf565b9150611efa82611e93565b604082019050919050565b60006020820190508181036000830152611f1e81611ee2565b9050919050565b611f2e816114ff565b82525050565b600081519050919050565b600082825260208201905092915050565b6000611f5b82611f34565b611f658185611f3f565b9350611f758185602086016118d0565b611f7e816116a2565b840191505092915050565b600060a082019050611f9e6000830188611f25565b611fab6020830187611f25565b611fb860408301866115b3565b611fc560608301856115b3565b8181036080830152611fd78184611f50565b90509695505050505050565b600081519050611ff281611609565b92915050565b60006020828403121561200e5761200d6114d5565b5b600061201c84828501611fe3565b91505092915050565b60008160e01c9050919050565b600060033d11156120515760046000803e61204e600051612025565b90505b90565b600060443d106120e1576120666114cb565b60043d036004823e80513d602482011167ffffffffffffffff8211171561208e5750506120e1565b808201805167ffffffffffffffff8111156120ac57505050506120e1565b80602083010160043d0385018111156120c95750505050506120e1565b6120d8826020018501866116e2565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b60006121406034836118bf565b915061214b826120e4565b604082019050919050565b6000602082019050818103600083015261216f81612133565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006121d26028836118bf565b91506121dd82612176565b604082019050919050565b60006020820190508181036000830152612201816121c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061224f57607f821691505b60208210810361226257612261612208565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461229581612237565b61229f8186612268565b945060018216600081146122ba57600181146122cb576122fe565b60ff198316865281860193506122fe565b6122d485612273565b60005b838110156122f6578154818901526001820191506020810190506122d7565b838801955050505b50505092915050565b60006123138285612288565b915061231f8284612288565b91508190509392505050565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b60006123876032836118bf565b91506123928261232b565b604082019050919050565b600060208201905081810360008301526123b68161237a565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b60006124196029836118bf565b9150612424826123bd565b604082019050919050565b600060208201905081810360008301526124488161240c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124b88261153d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124ea576124e961247e565b5b600182019050919050565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b60006125516029836118bf565b915061255c826124f5565b604082019050919050565b6000602082019050818103600083015261258081612544565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b60006125e36028836118bf565b91506125ee82612587565b604082019050919050565b60006020820190508181036000830152612612816125d6565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126756025836118bf565b915061268082612619565b604082019050919050565b600060208201905081810360008301526126a481612668565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000612707602a836118bf565b9150612712826126ab565b604082019050919050565b60006020820190508181036000830152612736816126fa565b9050919050565b60006127488261153d565b91506127538361153d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127885761278761247e565b5b828201905092915050565b600060408201905081810360008301526127ad8185611cd0565b905081810360208301526127c18184611cd0565b90509392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006128266029836118bf565b9150612831826127ca565b604082019050919050565b6000602082019050818103600083015261285581612819565b9050919050565b600060408201905061287160008301856115b3565b61287e60208301846115b3565b9392505050565b600060a08201905061289a6000830188611f25565b6128a76020830187611f25565b81810360408301526128b98186611cd0565b905081810360608301526128cd8185611cd0565b905081810360808301526128e18184611f50565b9050969550505050505056fea264697066735822122099bf5e9438ad2e51a5a95f86105894ef65101b1958f469b3361c22e341a34b0264736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB3 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x704FE710 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x9ABC8320 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x27A JUMPI PUSH2 0xB3 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0xB8 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0x84E9E24 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x1F320331 EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x194 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCD SWAP2 SWAP1 PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDF SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x102 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFD SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x35E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x167D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x17DE JUMP JUMPDEST PUSH2 0x440 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x149 SWAP2 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH2 0x617 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15B SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x195E JUMP JUMPDEST PUSH2 0x655 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18B SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x1A66 JUMP JUMPDEST PUSH2 0x67A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0x1BF8 JUMP JUMPDEST PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D7 SWAP2 SWAP1 PUSH2 0x1D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F5 SWAP2 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH2 0x834 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x207 SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x218 PUSH2 0x8D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x243 SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x962 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x264 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x1DBC JUMP JUMPDEST PUSH2 0x978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x167D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0x1DFC JUMP JUMPDEST PUSH2 0xA0C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x306 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2FD SWAP1 PUSH2 0x1F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x429 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x439 JUMPI POP PUSH2 0x438 DUP3 PUSH2 0xAAD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45F DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB17 JUMP JUMPDEST ISZERO PUSH2 0x60F JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4A5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x4E1 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4DE SWAP2 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x586 JUMPI PUSH2 0x4ED PUSH2 0x2032 JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 SUB PUSH2 0x549 JUMPI POP PUSH2 0x501 PUSH2 0x2054 JUMP JUMPDEST DUP1 PUSH2 0x50C JUMPI POP PUSH2 0x54B JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x540 SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x57D SWAP1 PUSH2 0x2156 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x60D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x604 SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x63F SWAP3 SWAP2 SWAP1 PUSH2 0x2307 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH2 0x682 PUSH2 0xB3A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x6C8 JUMPI POP PUSH2 0x6C7 DUP6 PUSH2 0x6C2 PUSH2 0xB3A JUMP JUMPDEST PUSH2 0x978 JUMP JUMPDEST JUMPDEST PUSH2 0x707 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6FE SWAP1 PUSH2 0x239D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x714 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xB42 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x761 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x758 SWAP1 PUSH2 0x242F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x77E JUMPI PUSH2 0x77D PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x7AC JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x829 JUMPI PUSH2 0x7F9 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x7D1 JUMPI PUSH2 0x7D0 PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x7EC JUMPI PUSH2 0x7EB PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x296 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x80C JUMPI PUSH2 0x80B PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH2 0x822 SWAP1 PUSH2 0x24AD JUMP JUMPDEST SWAP1 POP PUSH2 0x7B2 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x853 SWAP1 PUSH2 0x2237 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 0x87F SWAP1 PUSH2 0x2237 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8CC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8A1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8CC 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 0x8AF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x8E1 SWAP1 PUSH2 0x2237 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 0x90D SWAP1 PUSH2 0x2237 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x95A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x92F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x95A 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 0x93D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x974 PUSH2 0x96D PUSH2 0xB3A JUMP JUMPDEST DUP4 DUP4 PUSH2 0xE63 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA14 PUSH2 0xB3A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xA5A JUMPI POP PUSH2 0xA59 DUP6 PUSH2 0xA54 PUSH2 0xB3A JUMP JUMPDEST PUSH2 0x978 JUMP JUMPDEST JUMPDEST PUSH2 0xA99 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA90 SWAP1 PUSH2 0x2567 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAA6 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xFCF JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0xB86 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB7D SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBEC SWAP1 PUSH2 0x268B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBFF PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP PUSH2 0xC0F DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x126A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xC30 JUMPI PUSH2 0xC2F PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xC4F JUMPI PUSH2 0xC4E PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE7 SWAP1 PUSH2 0x271D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDA5 SWAP2 SWAP1 PUSH2 0x273D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP DUP1 PUSH2 0xDB9 SWAP1 PUSH2 0x24AD JUMP JUMPDEST SWAP1 POP PUSH2 0xC12 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0xE37 SWAP3 SWAP2 SWAP1 PUSH2 0x2793 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0xE4D DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1272 JUMP JUMPDEST PUSH2 0xE5B DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x127A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xED1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC8 SWAP1 PUSH2 0x283C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xFC2 SWAP2 SWAP1 PUSH2 0x167D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x103E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1035 SWAP1 PUSH2 0x268B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1048 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1055 DUP6 PUSH2 0x1451 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1062 DUP6 PUSH2 0x1451 JUMP JUMPDEST SWAP1 POP PUSH2 0x1072 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x126A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP6 DUP2 LT ISZERO PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x271D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP6 DUP2 SUB PUSH1 0x0 DUP1 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP6 PUSH1 0x0 DUP1 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x11BE SWAP2 SWAP1 PUSH2 0x273D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x123B SWAP3 SWAP2 SWAP1 PUSH2 0x285C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1251 DUP5 DUP11 DUP11 DUP7 DUP7 DUP11 PUSH2 0x1272 JUMP JUMPDEST PUSH2 0x125F DUP5 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x440 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1299 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB17 JUMP JUMPDEST ISZERO PUSH2 0x1449 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12DF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2885 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1318 SWAP2 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x13C0 JUMPI PUSH2 0x1327 PUSH2 0x2032 JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 SUB PUSH2 0x1383 JUMPI POP PUSH2 0x133B PUSH2 0x2054 JUMP JUMPDEST DUP1 PUSH2 0x1346 JUMPI POP PUSH2 0x1385 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x137A SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13B7 SWAP1 PUSH2 0x2156 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1447 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1470 JUMPI PUSH2 0x146F PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x149E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x14B6 JUMPI PUSH2 0x14B5 PUSH2 0x244F JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x150A DUP3 PUSH2 0x14DF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x151A DUP2 PUSH2 0x14FF JUMP JUMPDEST DUP2 EQ PUSH2 0x1525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1537 DUP2 PUSH2 0x1511 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1550 DUP2 PUSH2 0x153D JUMP JUMPDEST DUP2 EQ PUSH2 0x155B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x156D DUP2 PUSH2 0x1547 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x158A JUMPI PUSH2 0x1589 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1598 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x15A9 DUP6 DUP3 DUP7 ADD PUSH2 0x155E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x15BC DUP2 PUSH2 0x153D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15D7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1612 DUP2 PUSH2 0x15DD JUMP JUMPDEST DUP2 EQ PUSH2 0x161D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x162F DUP2 PUSH2 0x1609 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164B JUMPI PUSH2 0x164A PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1659 DUP5 DUP3 DUP6 ADD PUSH2 0x1620 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1677 DUP2 PUSH2 0x1662 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x166E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x16EB DUP3 PUSH2 0x16A2 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x170A JUMPI PUSH2 0x1709 PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171D PUSH2 0x14CB JUMP JUMPDEST SWAP1 POP PUSH2 0x1729 DUP3 DUP3 PUSH2 0x16E2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1749 JUMPI PUSH2 0x1748 PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH2 0x1752 DUP3 PUSH2 0x16A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1781 PUSH2 0x177C DUP5 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x179D JUMPI PUSH2 0x179C PUSH2 0x169D JUMP JUMPDEST JUMPDEST PUSH2 0x17A8 DUP5 DUP3 DUP6 PUSH2 0x175F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17C5 JUMPI PUSH2 0x17C4 PUSH2 0x1698 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17D5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x176E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x17FB JUMPI PUSH2 0x17FA PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1809 DUP10 DUP3 DUP11 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x181A DUP10 DUP3 DUP11 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x182B DUP10 DUP3 DUP11 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x183C DUP10 DUP3 DUP11 ADD PUSH2 0x155E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x184D DUP10 DUP3 DUP11 ADD PUSH2 0x155E JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x186E JUMPI PUSH2 0x186D PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x187A DUP10 DUP3 DUP11 ADD PUSH2 0x17B0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x189D JUMPI PUSH2 0x189C PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18AB DUP5 DUP3 DUP6 ADD PUSH2 0x155E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x18EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x18FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x190E DUP3 PUSH2 0x18B4 JUMP JUMPDEST PUSH2 0x1918 DUP2 DUP6 PUSH2 0x18BF JUMP JUMPDEST SWAP4 POP PUSH2 0x1928 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18D0 JUMP JUMPDEST PUSH2 0x1931 DUP2 PUSH2 0x16A2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1956 DUP2 DUP5 PUSH2 0x1903 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1975 JUMPI PUSH2 0x1974 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1983 DUP6 DUP3 DUP7 ADD PUSH2 0x155E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1994 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x19B9 JUMPI PUSH2 0x19B8 PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x19E2 PUSH2 0x19DD DUP5 PUSH2 0x199E JUMP JUMPDEST PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1A05 JUMPI PUSH2 0x1A04 PUSH2 0x19CA JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A2E JUMPI DUP1 PUSH2 0x1A1A DUP9 DUP3 PUSH2 0x155E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1A07 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A4D JUMPI PUSH2 0x1A4C PUSH2 0x1698 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A5D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x19CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1A82 JUMPI PUSH2 0x1A81 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A90 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1AA1 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AC2 JUMPI PUSH2 0x1AC1 PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1ACE DUP9 DUP3 DUP10 ADD PUSH2 0x1A38 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AEF JUMPI PUSH2 0x1AEE PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1AFB DUP9 DUP3 DUP10 ADD PUSH2 0x1A38 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B1C JUMPI PUSH2 0x1B1B PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1B28 DUP9 DUP3 DUP10 ADD PUSH2 0x17B0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B50 JUMPI PUSH2 0x1B4F PUSH2 0x16B3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B74 PUSH2 0x1B6F DUP5 PUSH2 0x1B35 JUMP JUMPDEST PUSH2 0x1713 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1B97 JUMPI PUSH2 0x1B96 PUSH2 0x19CA JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC0 JUMPI DUP1 PUSH2 0x1BAC DUP9 DUP3 PUSH2 0x1528 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1B99 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BDF JUMPI PUSH2 0x1BDE PUSH2 0x1698 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BEF DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1B61 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C0F JUMPI PUSH2 0x1C0E PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C2D JUMPI PUSH2 0x1C2C PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1C39 DUP6 DUP3 DUP7 ADD PUSH2 0x1BCA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C5A JUMPI PUSH2 0x1C59 PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1C66 DUP6 DUP3 DUP7 ADD PUSH2 0x1A38 JUMP JUMPDEST SWAP2 POP 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 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CA5 DUP2 PUSH2 0x153D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CB7 DUP4 DUP4 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CDB DUP3 PUSH2 0x1C70 JUMP JUMPDEST PUSH2 0x1CE5 DUP2 DUP6 PUSH2 0x1C7B JUMP JUMPDEST SWAP4 POP PUSH2 0x1CF0 DUP4 PUSH2 0x1C8C JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D21 JUMPI DUP2 MLOAD PUSH2 0x1D08 DUP9 DUP3 PUSH2 0x1CAB JUMP JUMPDEST SWAP8 POP PUSH2 0x1D13 DUP4 PUSH2 0x1CC3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1CF4 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1D48 DUP2 DUP5 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D59 DUP2 PUSH2 0x1662 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D76 DUP2 PUSH2 0x1D50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D93 JUMPI PUSH2 0x1D92 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DA1 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1DB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1D67 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DD3 JUMPI PUSH2 0x1DD2 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DE1 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1DF2 DUP6 DUP3 DUP7 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1E18 JUMPI PUSH2 0x1E17 PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E26 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1E37 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1E48 DUP9 DUP3 DUP10 ADD PUSH2 0x155E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1E59 DUP9 DUP3 DUP10 ADD PUSH2 0x155E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E7A JUMPI PUSH2 0x1E79 PUSH2 0x14DA JUMP JUMPDEST JUMPDEST PUSH2 0x1E86 DUP9 DUP3 DUP10 ADD PUSH2 0x17B0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x455243313135353A2062616C616E636520717565727920666F7220746865207A PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EEF PUSH1 0x2B DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x1EFA DUP3 PUSH2 0x1E93 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F1E DUP2 PUSH2 0x1EE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F2E DUP2 PUSH2 0x14FF JUMP JUMPDEST DUP3 MSTORE POP 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 PUSH2 0x1F5B DUP3 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x1F65 DUP2 DUP6 PUSH2 0x1F3F JUMP JUMPDEST SWAP4 POP PUSH2 0x1F75 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18D0 JUMP JUMPDEST PUSH2 0x1F7E DUP2 PUSH2 0x16A2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F9E PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0x1FAB PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0x1FB8 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x1FC5 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x15B3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1FD7 DUP2 DUP5 PUSH2 0x1F50 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1FF2 DUP2 PUSH2 0x1609 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x200E JUMPI PUSH2 0x200D PUSH2 0x14D5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x201C DUP5 DUP3 DUP6 ADD PUSH2 0x1FE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 RETURNDATASIZE GT ISZERO PUSH2 0x2051 JUMPI PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x204E PUSH1 0x0 MLOAD PUSH2 0x2025 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT PUSH2 0x20E1 JUMPI PUSH2 0x2066 PUSH2 0x14CB JUMP JUMPDEST PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x208E JUMPI POP POP PUSH2 0x20E1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20AC JUMPI POP POP POP POP PUSH2 0x20E1 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD PUSH1 0x4 RETURNDATASIZE SUB DUP6 ADD DUP2 GT ISZERO PUSH2 0x20C9 JUMPI POP POP POP POP POP PUSH2 0x20E1 JUMP JUMPDEST PUSH2 0x20D8 DUP3 PUSH1 0x20 ADD DUP6 ADD DUP7 PUSH2 0x16E2 JUMP JUMPDEST DUP3 SWAP6 POP POP POP POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0x455243313135353A207472616E7366657220746F206E6F6E2045524331313535 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x526563656976657220696D706C656D656E746572000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2140 PUSH1 0x34 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x214B DUP3 PUSH2 0x20E4 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x216F DUP2 PUSH2 0x2133 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A204552433131353552656365697665722072656A65637465 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6420746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21D2 PUSH1 0x28 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x21DD DUP3 PUSH2 0x2176 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2201 DUP2 PUSH2 0x21C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x224F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2262 JUMPI PUSH2 0x2261 PUSH2 0x2208 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2295 DUP2 PUSH2 0x2237 JUMP JUMPDEST PUSH2 0x229F DUP2 DUP7 PUSH2 0x2268 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x22BA JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x22CB JUMPI PUSH2 0x22FE JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 DUP7 ADD SWAP4 POP PUSH2 0x22FE JUMP JUMPDEST PUSH2 0x22D4 DUP6 PUSH2 0x2273 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22F6 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x22D7 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2313 DUP3 DUP6 PUSH2 0x2288 JUMP JUMPDEST SWAP2 POP PUSH2 0x231F DUP3 DUP5 PUSH2 0x2288 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E736665722063616C6C6572206973206E6F7420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572206E6F7220617070726F7665640000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2387 PUSH1 0x32 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2392 DUP3 PUSH2 0x232B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x23B6 DUP2 PUSH2 0x237A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A206163636F756E747320616E6420696473206C656E677468 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x206D69736D617463680000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2419 PUSH1 0x29 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2424 DUP3 PUSH2 0x23BD JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2448 DUP2 PUSH2 0x240C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24B8 DUP3 PUSH2 0x153D JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x24EA JUMPI PUSH2 0x24E9 PUSH2 0x247E JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A2063616C6C6572206973206E6F74206F776E6572206E6F72 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20617070726F7665640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2551 PUSH1 0x29 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x255C DUP3 PUSH2 0x24F5 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2580 DUP2 PUSH2 0x2544 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A2069647320616E6420616D6F756E7473206C656E67746820 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25E3 PUSH1 0x28 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x25EE DUP3 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2612 DUP2 PUSH2 0x25D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2675 PUSH1 0x25 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2680 DUP3 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x26A4 DUP2 PUSH2 0x2668 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72207472616E7366657200000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2707 PUSH1 0x2A DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2712 DUP3 PUSH2 0x26AB JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2736 DUP2 PUSH2 0x26FA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2748 DUP3 PUSH2 0x153D JUMP JUMPDEST SWAP2 POP PUSH2 0x2753 DUP4 PUSH2 0x153D JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2788 JUMPI PUSH2 0x2787 PUSH2 0x247E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x27AD DUP2 DUP6 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x27C1 DUP2 DUP5 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x455243313135353A2073657474696E6720617070726F76616C20737461747573 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20666F722073656C660000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2826 PUSH1 0x29 DUP4 PUSH2 0x18BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2831 DUP3 PUSH2 0x27CA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2855 DUP2 PUSH2 0x2819 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2871 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x287E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x289A PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0x28A7 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1F25 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x28B9 DUP2 DUP7 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x28CD DUP2 DUP6 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x28E1 DUP2 DUP5 PUSH2 0x1F50 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP10 0xBF 0x5E SWAP5 CODESIZE 0xAD 0x2E MLOAD 0xA5 0xA9 0x5F DUP7 LT PC SWAP5 0xEF PUSH6 0x101B1958F469 0xB3 CALLDATASIZE SHR 0x22 0xE3 COINBASE LOG3 0x4B MUL PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ",
"sourceMap": "539:15481:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2339:305;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1260:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13969:870;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2008:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;693:63;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4397:430;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2801:542;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;808:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1060:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3411:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3659:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3936:389;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2339:305;2465:7;2528:1;2509:21;;:7;:21;;;2488:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;2616:8;:12;2625:2;2616:12;;;;;;;;;;;:21;2629:7;2616:21;;;;;;;;;;;;;;;;2609:28;;2339:305;;;;:::o;1260:349::-;1402:4;1456:26;1441:41;;;:11;:41;;;;:109;;;;1513:37;1498:52;;;:11;:52;;;;1441:109;:161;;;;1566:36;1590:11;1566:23;:36::i;:::-;1441:161;1422:180;;1260:349;;;:::o;13969:870::-;14175:15;:2;:13;;;:15::i;:::-;14171:662;;;14243:2;14226:38;;;14286:8;14316:4;14342:2;14366:6;14394:4;14226:190;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14206:617;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14699:6;14692:14;;;;;;;;;;;:::i;:::-;;;;;;;;14206:617;;;14746:62;;;;;;;;;;:::i;:::-;;;;;;;;14206:617;14489:43;;;14477:55;;;:8;:55;;;;14473:152;;14556:50;;;;;;;;;;:::i;:::-;;;;;;;;14473:152;14429:210;14171:662;13969:870;;;;;;:::o;2008:189::-;2111:13;2171:7;2180:4;:8;2185:2;2180:8;;;;;;;;;;;2154:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2140:50;;2008:189;;;:::o;693:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4397:430::-;4630:12;:10;:12::i;:::-;4622:20;;:4;:20;;;:60;;;;4646:36;4663:4;4669:12;:10;:12::i;:::-;4646:16;:36::i;:::-;4622:60;4601:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;4768:52;4791:4;4797:2;4801:3;4806:7;4815:4;4768:22;:52::i;:::-;4397:430;;;;;:::o;2801:542::-;2952:16;3024:3;:10;3005:8;:15;:29;2984:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;3112:30;3159:8;:15;3145:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3112:63;;3191:9;3186:120;3210:8;:15;3206:1;:19;3186:120;;;3265:30;3275:8;3284:1;3275:11;;;;;;;;:::i;:::-;;;;;;;;3288:3;3292:1;3288:6;;;;;;;;:::i;:::-;;;;;;;;3265:9;:30::i;:::-;3246:13;3260:1;3246:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;3227:3;;;;:::i;:::-;;;3186:120;;;;3323:13;3316:20;;;2801:542;;;;:::o;808:38::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1060:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3411:181::-;3533:52;3552:12;:10;:12::i;:::-;3566:8;3576;3533:18;:52::i;:::-;3411:181;;:::o;3659:210::-;3798:4;3825:18;:27;3844:7;3825:27;;;;;;;;;;;;;;;:37;3853:8;3825:37;;;;;;;;;;;;;;;;;;;;;;;;;3818:44;;3659:210;;;;:::o;3936:389::-;4144:12;:10;:12::i;:::-;4136:20;;:4;:20;;;:60;;;;4160:36;4177:4;4183:12;:10;:12::i;:::-;4160:16;:36::i;:::-;4136:60;4115:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;4273:45;4291:4;4297:2;4301;4305:6;4313:4;4273:17;:45::i;:::-;3936:389;;;;;:::o;829:155:3:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;1175:320:0:-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;640:96:1:-;693:7;719:10;712:17;;640:96;:::o;6601:1274:2:-;6834:7;:14;6820:3;:10;:28;6799:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6946:1;6932:16;;:2;:16;;;6924:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7001:16;7020:12;:10;:12::i;:::-;7001:31;;7043:60;7064:8;7074:4;7080:2;7084:3;7089:7;7098:4;7043:20;:60::i;:::-;7119:9;7114:454;7138:3;:10;7134:1;:14;7114:454;;;7169:10;7182:3;7186:1;7182:6;;;;;;;;:::i;:::-;;;;;;;;7169:19;;7202:14;7219:7;7227:1;7219:10;;;;;;;;:::i;:::-;;;;;;;;7202:27;;7244:19;7266:8;:12;7275:2;7266:12;;;;;;;;;;;:18;7279:4;7266:18;;;;;;;;;;;;;;;;7244:40;;7338:6;7323:11;:21;;7298:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;7497:6;7483:11;:20;7462:8;:12;7471:2;7462:12;;;;;;;;;;;:18;7475:4;7462:18;;;;;;;;;;;;;;;:41;;;;7551:6;7531:8;:12;7540:2;7531:12;;;;;;;;;;;:16;7544:2;7531:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;7155:413;;;7150:3;;;;:::i;:::-;;;7114:454;;;;7613:2;7583:47;;7607:4;7583:47;;7597:8;7583:47;;;7617:3;7622:7;7583:47;;;;;;;:::i;:::-;;;;;;;;7641:59;7661:8;7671:4;7677:2;7681:3;7686:7;7695:4;7641:19;:59::i;:::-;7711:157;7760:8;7782:4;7800:2;7816:3;7833:7;7854:4;7711:35;:157::i;:::-;6789:1086;6601:1274;;;;;:::o;11346:323::-;11496:8;11487:17;;:5;:17;;;11479:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11598:8;11560:18;:25;11579:5;11560:25;;;;;;;;;;;;;;;:35;11586:8;11560:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11643:8;11621:41;;11636:5;11621:41;;;11653:8;11621:41;;;;;;:::i;:::-;;;;;;;;11346:323;;;:::o;5277:978::-;5472:1;5458:16;;:2;:16;;;5450:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5527:16;5546:12;:10;:12::i;:::-;5527:31;;5568:20;5591:21;5609:2;5591:17;:21::i;:::-;5568:44;;5622:24;5649:25;5667:6;5649:17;:25::i;:::-;5622:52;;5685:60;5706:8;5716:4;5722:2;5726:3;5731:7;5740:4;5685:20;:60::i;:::-;5756:19;5778:8;:12;5787:2;5778:12;;;;;;;;;;;:18;5791:4;5778:18;;;;;;;;;;;;;;;;5756:40;;5842:6;5827:11;:21;;5806:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;5985:6;5971:11;:20;5950:8;:12;5959:2;5950:12;;;;;;;;;;;:18;5963:4;5950:18;;;;;;;;;;;;;;;:41;;;;6031:6;6011:8;:12;6020:2;6011:12;;;;;;;;;;;:16;6024:2;6011:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6084:2;6053:46;;6078:4;6053:46;;6068:8;6053:46;;;6088:2;6092:6;6053:46;;;;;;;:::i;:::-;;;;;;;;6110:59;6130:8;6140:4;6146:2;6150:3;6155:7;6164:4;6110:19;:59::i;:::-;6180:68;6211:8;6221:4;6227:2;6231;6235:6;6243:4;6180:30;:68::i;:::-;5440:815;;;;5277:978;;;;;:::o;12603:214::-;;;;;;;:::o;13750:213::-;;;;;;;:::o;14845:946::-;15077:15;:2;:13;;;:15::i;:::-;15073:712;;;15145:2;15128:43;;;15193:8;15223:4;15249:3;15274:7;15303:4;15128:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15108:667;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;15651:6;15644:14;;;;;;;;;;;:::i;:::-;;;;;;;;15108:667;;;15698:62;;;;;;;;;;:::i;:::-;;;;;;;;15108:667;15419:48;;;15407:60;;;:8;:60;;;;15382:195;;15508:50;;;;;;;;;;:::i;:::-;;;;;;;;15382:195;15338:253;15073:712;14845:946;;;;;;:::o;15797:221::-;15887:16;15919:22;15958:1;15944:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15919:41;;15981:7;15970:5;15976:1;15970:8;;;;;;;;:::i;:::-;;;;;;;:18;;;;;16006:5;15999:12;;;15797:221;;;:::o;7:75:10:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:117::-;3322:1;3319;3312:12;3336:117;3445:1;3442;3435:12;3459:102;3500:6;3551:2;3547:7;3542:2;3535:5;3531:14;3527:28;3517:38;;3459:102;;;:::o;3567:180::-;3615:77;3612:1;3605:88;3712:4;3709:1;3702:15;3736:4;3733:1;3726:15;3753:281;3836:27;3858:4;3836:27;:::i;:::-;3828:6;3824:40;3966:6;3954:10;3951:22;3930:18;3918:10;3915:34;3912:62;3909:88;;;3977:18;;:::i;:::-;3909:88;4017:10;4013:2;4006:22;3796:238;3753:281;;:::o;4040:129::-;4074:6;4101:20;;:::i;:::-;4091:30;;4130:33;4158:4;4150:6;4130:33;:::i;:::-;4040:129;;;:::o;4175:307::-;4236:4;4326:18;4318:6;4315:30;4312:56;;;4348:18;;:::i;:::-;4312:56;4386:29;4408:6;4386:29;:::i;:::-;4378:37;;4470:4;4464;4460:15;4452:23;;4175:307;;;:::o;4488:154::-;4572:6;4567:3;4562;4549:30;4634:1;4625:6;4620:3;4616:16;4609:27;4488:154;;;:::o;4648:410::-;4725:5;4750:65;4766:48;4807:6;4766:48;:::i;:::-;4750:65;:::i;:::-;4741:74;;4838:6;4831:5;4824:21;4876:4;4869:5;4865:16;4914:3;4905:6;4900:3;4896:16;4893:25;4890:112;;;4921:79;;:::i;:::-;4890:112;5011:41;5045:6;5040:3;5035;5011:41;:::i;:::-;4731:327;4648:410;;;;;:::o;5077:338::-;5132:5;5181:3;5174:4;5166:6;5162:17;5158:27;5148:122;;5189:79;;:::i;:::-;5148:122;5306:6;5293:20;5331:78;5405:3;5397:6;5390:4;5382:6;5378:17;5331:78;:::i;:::-;5322:87;;5138:277;5077:338;;;;:::o;5421:1235::-;5534:6;5542;5550;5558;5566;5574;5623:3;5611:9;5602:7;5598:23;5594:33;5591:120;;;5630:79;;:::i;:::-;5591:120;5750:1;5775:53;5820:7;5811:6;5800:9;5796:22;5775:53;:::i;:::-;5765:63;;5721:117;5877:2;5903:53;5948:7;5939:6;5928:9;5924:22;5903:53;:::i;:::-;5893:63;;5848:118;6005:2;6031:53;6076:7;6067:6;6056:9;6052:22;6031:53;:::i;:::-;6021:63;;5976:118;6133:2;6159:53;6204:7;6195:6;6184:9;6180:22;6159:53;:::i;:::-;6149:63;;6104:118;6261:3;6288:53;6333:7;6324:6;6313:9;6309:22;6288:53;:::i;:::-;6278:63;;6232:119;6418:3;6407:9;6403:19;6390:33;6450:18;6442:6;6439:30;6436:117;;;6472:79;;:::i;:::-;6436:117;6577:62;6631:7;6622:6;6611:9;6607:22;6577:62;:::i;:::-;6567:72;;6361:288;5421:1235;;;;;;;;:::o;6662:329::-;6721:6;6770:2;6758:9;6749:7;6745:23;6741:32;6738:119;;;6776:79;;:::i;:::-;6738:119;6896:1;6921:53;6966:7;6957:6;6946:9;6942:22;6921:53;:::i;:::-;6911:63;;6867:117;6662:329;;;;:::o;6997:99::-;7049:6;7083:5;7077:12;7067:22;;6997:99;;;:::o;7102:169::-;7186:11;7220:6;7215:3;7208:19;7260:4;7255:3;7251:14;7236:29;;7102:169;;;;:::o;7277:307::-;7345:1;7355:113;7369:6;7366:1;7363:13;7355:113;;;7454:1;7449:3;7445:11;7439:18;7435:1;7430:3;7426:11;7419:39;7391:2;7388:1;7384:10;7379:15;;7355:113;;;7486:6;7483:1;7480:13;7477:101;;;7566:1;7557:6;7552:3;7548:16;7541:27;7477:101;7326:258;7277:307;;;:::o;7590:364::-;7678:3;7706:39;7739:5;7706:39;:::i;:::-;7761:71;7825:6;7820:3;7761:71;:::i;:::-;7754:78;;7841:52;7886:6;7881:3;7874:4;7867:5;7863:16;7841:52;:::i;:::-;7918:29;7940:6;7918:29;:::i;:::-;7913:3;7909:39;7902:46;;7682:272;7590:364;;;;:::o;7960:313::-;8073:4;8111:2;8100:9;8096:18;8088:26;;8160:9;8154:4;8150:20;8146:1;8135:9;8131:17;8124:47;8188:78;8261:4;8252:6;8188:78;:::i;:::-;8180:86;;7960:313;;;;:::o;8279:474::-;8347:6;8355;8404:2;8392:9;8383:7;8379:23;8375:32;8372:119;;;8410:79;;:::i;:::-;8372:119;8530:1;8555:53;8600:7;8591:6;8580:9;8576:22;8555:53;:::i;:::-;8545:63;;8501:117;8657:2;8683:53;8728:7;8719:6;8708:9;8704:22;8683:53;:::i;:::-;8673:63;;8628:118;8279:474;;;;;:::o;8759:311::-;8836:4;8926:18;8918:6;8915:30;8912:56;;;8948:18;;:::i;:::-;8912:56;8998:4;8990:6;8986:17;8978:25;;9058:4;9052;9048:15;9040:23;;8759:311;;;:::o;9076:117::-;9185:1;9182;9175:12;9216:710;9312:5;9337:81;9353:64;9410:6;9353:64;:::i;:::-;9337:81;:::i;:::-;9328:90;;9438:5;9467:6;9460:5;9453:21;9501:4;9494:5;9490:16;9483:23;;9554:4;9546:6;9542:17;9534:6;9530:30;9583:3;9575:6;9572:15;9569:122;;;9602:79;;:::i;:::-;9569:122;9717:6;9700:220;9734:6;9729:3;9726:15;9700:220;;;9809:3;9838:37;9871:3;9859:10;9838:37;:::i;:::-;9833:3;9826:50;9905:4;9900:3;9896:14;9889:21;;9776:144;9760:4;9755:3;9751:14;9744:21;;9700:220;;;9704:21;9318:608;;9216:710;;;;;:::o;9949:370::-;10020:5;10069:3;10062:4;10054:6;10050:17;10046:27;10036:122;;10077:79;;:::i;:::-;10036:122;10194:6;10181:20;10219:94;10309:3;10301:6;10294:4;10286:6;10282:17;10219:94;:::i;:::-;10210:103;;10026:293;9949:370;;;;:::o;10325:1509::-;10479:6;10487;10495;10503;10511;10560:3;10548:9;10539:7;10535:23;10531:33;10528:120;;;10567:79;;:::i;:::-;10528:120;10687:1;10712:53;10757:7;10748:6;10737:9;10733:22;10712:53;:::i;:::-;10702:63;;10658:117;10814:2;10840:53;10885:7;10876:6;10865:9;10861:22;10840:53;:::i;:::-;10830:63;;10785:118;10970:2;10959:9;10955:18;10942:32;11001:18;10993:6;10990:30;10987:117;;;11023:79;;:::i;:::-;10987:117;11128:78;11198:7;11189:6;11178:9;11174:22;11128:78;:::i;:::-;11118:88;;10913:303;11283:2;11272:9;11268:18;11255:32;11314:18;11306:6;11303:30;11300:117;;;11336:79;;:::i;:::-;11300:117;11441:78;11511:7;11502:6;11491:9;11487:22;11441:78;:::i;:::-;11431:88;;11226:303;11596:3;11585:9;11581:19;11568:33;11628:18;11620:6;11617:30;11614:117;;;11650:79;;:::i;:::-;11614:117;11755:62;11809:7;11800:6;11789:9;11785:22;11755:62;:::i;:::-;11745:72;;11539:288;10325:1509;;;;;;;;:::o;11840:311::-;11917:4;12007:18;11999:6;11996:30;11993:56;;;12029:18;;:::i;:::-;11993:56;12079:4;12071:6;12067:17;12059:25;;12139:4;12133;12129:15;12121:23;;11840:311;;;:::o;12174:710::-;12270:5;12295:81;12311:64;12368:6;12311:64;:::i;:::-;12295:81;:::i;:::-;12286:90;;12396:5;12425:6;12418:5;12411:21;12459:4;12452:5;12448:16;12441:23;;12512:4;12504:6;12500:17;12492:6;12488:30;12541:3;12533:6;12530:15;12527:122;;;12560:79;;:::i;:::-;12527:122;12675:6;12658:220;12692:6;12687:3;12684:15;12658:220;;;12767:3;12796:37;12829:3;12817:10;12796:37;:::i;:::-;12791:3;12784:50;12863:4;12858:3;12854:14;12847:21;;12734:144;12718:4;12713:3;12709:14;12702:21;;12658:220;;;12662:21;12276:608;;12174:710;;;;;:::o;12907:370::-;12978:5;13027:3;13020:4;13012:6;13008:17;13004:27;12994:122;;13035:79;;:::i;:::-;12994:122;13152:6;13139:20;13177:94;13267:3;13259:6;13252:4;13244:6;13240:17;13177:94;:::i;:::-;13168:103;;12984:293;12907:370;;;;:::o;13283:894::-;13401:6;13409;13458:2;13446:9;13437:7;13433:23;13429:32;13426:119;;;13464:79;;:::i;:::-;13426:119;13612:1;13601:9;13597:17;13584:31;13642:18;13634:6;13631:30;13628:117;;;13664:79;;:::i;:::-;13628:117;13769:78;13839:7;13830:6;13819:9;13815:22;13769:78;:::i;:::-;13759:88;;13555:302;13924:2;13913:9;13909:18;13896:32;13955:18;13947:6;13944:30;13941:117;;;13977:79;;:::i;:::-;13941:117;14082:78;14152:7;14143:6;14132:9;14128:22;14082:78;:::i;:::-;14072:88;;13867:303;13283:894;;;;;:::o;14183:114::-;14250:6;14284:5;14278:12;14268:22;;14183:114;;;:::o;14303:184::-;14402:11;14436:6;14431:3;14424:19;14476:4;14471:3;14467:14;14452:29;;14303:184;;;;:::o;14493:132::-;14560:4;14583:3;14575:11;;14613:4;14608:3;14604:14;14596:22;;14493:132;;;:::o;14631:108::-;14708:24;14726:5;14708:24;:::i;:::-;14703:3;14696:37;14631:108;;:::o;14745:179::-;14814:10;14835:46;14877:3;14869:6;14835:46;:::i;:::-;14913:4;14908:3;14904:14;14890:28;;14745:179;;;;:::o;14930:113::-;15000:4;15032;15027:3;15023:14;15015:22;;14930:113;;;:::o;15079:732::-;15198:3;15227:54;15275:5;15227:54;:::i;:::-;15297:86;15376:6;15371:3;15297:86;:::i;:::-;15290:93;;15407:56;15457:5;15407:56;:::i;:::-;15486:7;15517:1;15502:284;15527:6;15524:1;15521:13;15502:284;;;15603:6;15597:13;15630:63;15689:3;15674:13;15630:63;:::i;:::-;15623:70;;15716:60;15769:6;15716:60;:::i;:::-;15706:70;;15562:224;15549:1;15546;15542:9;15537:14;;15502:284;;;15506:14;15802:3;15795:10;;15203:608;;;15079:732;;;;:::o;15817:373::-;15960:4;15998:2;15987:9;15983:18;15975:26;;16047:9;16041:4;16037:20;16033:1;16022:9;16018:17;16011:47;16075:108;16178:4;16169:6;16075:108;:::i;:::-;16067:116;;15817:373;;;;:::o;16196:116::-;16266:21;16281:5;16266:21;:::i;:::-;16259:5;16256:32;16246:60;;16302:1;16299;16292:12;16246:60;16196:116;:::o;16318:133::-;16361:5;16399:6;16386:20;16377:29;;16415:30;16439:5;16415:30;:::i;:::-;16318:133;;;;:::o;16457:468::-;16522:6;16530;16579:2;16567:9;16558:7;16554:23;16550:32;16547:119;;;16585:79;;:::i;:::-;16547:119;16705:1;16730:53;16775:7;16766:6;16755:9;16751:22;16730:53;:::i;:::-;16720:63;;16676:117;16832:2;16858:50;16900:7;16891:6;16880:9;16876:22;16858:50;:::i;:::-;16848:60;;16803:115;16457:468;;;;;:::o;16931:474::-;16999:6;17007;17056:2;17044:9;17035:7;17031:23;17027:32;17024:119;;;17062:79;;:::i;:::-;17024:119;17182:1;17207:53;17252:7;17243:6;17232:9;17228:22;17207:53;:::i;:::-;17197:63;;17153:117;17309:2;17335:53;17380:7;17371:6;17360:9;17356:22;17335:53;:::i;:::-;17325:63;;17280:118;16931:474;;;;;:::o;17411:1089::-;17515:6;17523;17531;17539;17547;17596:3;17584:9;17575:7;17571:23;17567:33;17564:120;;;17603:79;;:::i;:::-;17564:120;17723:1;17748:53;17793:7;17784:6;17773:9;17769:22;17748:53;:::i;:::-;17738:63;;17694:117;17850:2;17876:53;17921:7;17912:6;17901:9;17897:22;17876:53;:::i;:::-;17866:63;;17821:118;17978:2;18004:53;18049:7;18040:6;18029:9;18025:22;18004:53;:::i;:::-;17994:63;;17949:118;18106:2;18132:53;18177:7;18168:6;18157:9;18153:22;18132:53;:::i;:::-;18122:63;;18077:118;18262:3;18251:9;18247:19;18234:33;18294:18;18286:6;18283:30;18280:117;;;18316:79;;:::i;:::-;18280:117;18421:62;18475:7;18466:6;18455:9;18451:22;18421:62;:::i;:::-;18411:72;;18205:288;17411:1089;;;;;;;;:::o;18506:230::-;18646:34;18642:1;18634:6;18630:14;18623:58;18715:13;18710:2;18702:6;18698:15;18691:38;18506:230;:::o;18742:366::-;18884:3;18905:67;18969:2;18964:3;18905:67;:::i;:::-;18898:74;;18981:93;19070:3;18981:93;:::i;:::-;19099:2;19094:3;19090:12;19083:19;;18742:366;;;:::o;19114:419::-;19280:4;19318:2;19307:9;19303:18;19295:26;;19367:9;19361:4;19357:20;19353:1;19342:9;19338:17;19331:47;19395:131;19521:4;19395:131;:::i;:::-;19387:139;;19114:419;;;:::o;19539:118::-;19626:24;19644:5;19626:24;:::i;:::-;19621:3;19614:37;19539:118;;:::o;19663:98::-;19714:6;19748:5;19742:12;19732:22;;19663:98;;;:::o;19767:168::-;19850:11;19884:6;19879:3;19872:19;19924:4;19919:3;19915:14;19900:29;;19767:168;;;;:::o;19941:360::-;20027:3;20055:38;20087:5;20055:38;:::i;:::-;20109:70;20172:6;20167:3;20109:70;:::i;:::-;20102:77;;20188:52;20233:6;20228:3;20221:4;20214:5;20210:16;20188:52;:::i;:::-;20265:29;20287:6;20265:29;:::i;:::-;20260:3;20256:39;20249:46;;20031:270;19941:360;;;;:::o;20307:751::-;20530:4;20568:3;20557:9;20553:19;20545:27;;20582:71;20650:1;20639:9;20635:17;20626:6;20582:71;:::i;:::-;20663:72;20731:2;20720:9;20716:18;20707:6;20663:72;:::i;:::-;20745;20813:2;20802:9;20798:18;20789:6;20745:72;:::i;:::-;20827;20895:2;20884:9;20880:18;20871:6;20827:72;:::i;:::-;20947:9;20941:4;20937:20;20931:3;20920:9;20916:19;20909:49;20975:76;21046:4;21037:6;20975:76;:::i;:::-;20967:84;;20307:751;;;;;;;;:::o;21064:141::-;21120:5;21151:6;21145:13;21136:22;;21167:32;21193:5;21167:32;:::i;:::-;21064:141;;;;:::o;21211:349::-;21280:6;21329:2;21317:9;21308:7;21304:23;21300:32;21297:119;;;21335:79;;:::i;:::-;21297:119;21455:1;21480:63;21535:7;21526:6;21515:9;21511:22;21480:63;:::i;:::-;21470:73;;21426:127;21211:349;;;;:::o;21566:106::-;21610:8;21659:5;21654:3;21650:15;21629:36;;21566:106;;;:::o;21678:183::-;21713:3;21751:1;21733:16;21730:23;21727:128;;;21789:1;21786;21783;21768:23;21811:34;21842:1;21836:8;21811:34;:::i;:::-;21804:41;;21727:128;21678:183;:::o;21867:711::-;21906:3;21944:4;21926:16;21923:26;21952:5;21920:39;21981:20;;:::i;:::-;22056:1;22038:16;22034:24;22031:1;22025:4;22010:49;22089:4;22083:11;22188:16;22181:4;22173:6;22169:17;22166:39;22133:18;22125:6;22122:30;22106:113;22103:146;;;22234:5;;;;22103:146;22280:6;22274:4;22270:17;22316:3;22310:10;22343:18;22335:6;22332:30;22329:43;;;22365:5;;;;;;22329:43;22413:6;22406:4;22401:3;22397:14;22393:27;22472:1;22454:16;22450:24;22444:4;22440:35;22435:3;22432:44;22429:57;;;22479:5;;;;;;;22429:57;22496;22544:6;22538:4;22534:17;22526:6;22522:30;22516:4;22496:57;:::i;:::-;22569:3;22562:10;;21910:668;;;;;21867:711;;:::o;22584:239::-;22724:34;22720:1;22712:6;22708:14;22701:58;22793:22;22788:2;22780:6;22776:15;22769:47;22584:239;:::o;22829:366::-;22971:3;22992:67;23056:2;23051:3;22992:67;:::i;:::-;22985:74;;23068:93;23157:3;23068:93;:::i;:::-;23186:2;23181:3;23177:12;23170:19;;22829:366;;;:::o;23201:419::-;23367:4;23405:2;23394:9;23390:18;23382:26;;23454:9;23448:4;23444:20;23440:1;23429:9;23425:17;23418:47;23482:131;23608:4;23482:131;:::i;:::-;23474:139;;23201:419;;;:::o;23626:227::-;23766:34;23762:1;23754:6;23750:14;23743:58;23835:10;23830:2;23822:6;23818:15;23811:35;23626:227;:::o;23859:366::-;24001:3;24022:67;24086:2;24081:3;24022:67;:::i;:::-;24015:74;;24098:93;24187:3;24098:93;:::i;:::-;24216:2;24211:3;24207:12;24200:19;;23859:366;;;:::o;24231:419::-;24397:4;24435:2;24424:9;24420:18;24412:26;;24484:9;24478:4;24474:20;24470:1;24459:9;24455:17;24448:47;24512:131;24638:4;24512:131;:::i;:::-;24504:139;;24231:419;;;:::o;24656:180::-;24704:77;24701:1;24694:88;24801:4;24798:1;24791:15;24825:4;24822:1;24815:15;24842:320;24886:6;24923:1;24917:4;24913:12;24903:22;;24970:1;24964:4;24960:12;24991:18;24981:81;;25047:4;25039:6;25035:17;25025:27;;24981:81;25109:2;25101:6;25098:14;25078:18;25075:38;25072:84;;25128:18;;:::i;:::-;25072:84;24893:269;24842:320;;;:::o;25168:148::-;25270:11;25307:3;25292:18;;25168:148;;;;:::o;25322:141::-;25371:4;25394:3;25386:11;;25417:3;25414:1;25407:14;25451:4;25448:1;25438:18;25430:26;;25322:141;;;:::o;25493:845::-;25596:3;25633:5;25627:12;25662:36;25688:9;25662:36;:::i;:::-;25714:89;25796:6;25791:3;25714:89;:::i;:::-;25707:96;;25834:1;25823:9;25819:17;25850:1;25845:137;;;;25996:1;25991:341;;;;25812:520;;25845:137;25929:4;25925:9;25914;25910:25;25905:3;25898:38;25965:6;25960:3;25956:16;25949:23;;25845:137;;25991:341;26058:38;26090:5;26058:38;:::i;:::-;26118:1;26132:154;26146:6;26143:1;26140:13;26132:154;;;26220:7;26214:14;26210:1;26205:3;26201:11;26194:35;26270:1;26261:7;26257:15;26246:26;;26168:4;26165:1;26161:12;26156:17;;26132:154;;;26315:6;26310:3;26306:16;26299:23;;25998:334;;25812:520;;25600:738;;25493:845;;;;:::o;26344:423::-;26518:3;26540:92;26628:3;26619:6;26540:92;:::i;:::-;26533:99;;26649:92;26737:3;26728:6;26649:92;:::i;:::-;26642:99;;26758:3;26751:10;;26344:423;;;;;:::o;26773:237::-;26913:34;26909:1;26901:6;26897:14;26890:58;26982:20;26977:2;26969:6;26965:15;26958:45;26773:237;:::o;27016:366::-;27158:3;27179:67;27243:2;27238:3;27179:67;:::i;:::-;27172:74;;27255:93;27344:3;27255:93;:::i;:::-;27373:2;27368:3;27364:12;27357:19;;27016:366;;;:::o;27388:419::-;27554:4;27592:2;27581:9;27577:18;27569:26;;27641:9;27635:4;27631:20;27627:1;27616:9;27612:17;27605:47;27669:131;27795:4;27669:131;:::i;:::-;27661:139;;27388:419;;;:::o;27813:228::-;27953:34;27949:1;27941:6;27937:14;27930:58;28022:11;28017:2;28009:6;28005:15;27998:36;27813:228;:::o;28047:366::-;28189:3;28210:67;28274:2;28269:3;28210:67;:::i;:::-;28203:74;;28286:93;28375:3;28286:93;:::i;:::-;28404:2;28399:3;28395:12;28388:19;;28047:366;;;:::o;28419:419::-;28585:4;28623:2;28612:9;28608:18;28600:26;;28672:9;28666:4;28662:20;28658:1;28647:9;28643:17;28636:47;28700:131;28826:4;28700:131;:::i;:::-;28692:139;;28419:419;;;:::o;28844:180::-;28892:77;28889:1;28882:88;28989:4;28986:1;28979:15;29013:4;29010:1;29003:15;29030:180;29078:77;29075:1;29068:88;29175:4;29172:1;29165:15;29199:4;29196:1;29189:15;29216:233;29255:3;29278:24;29296:5;29278:24;:::i;:::-;29269:33;;29324:66;29317:5;29314:77;29311:103;;29394:18;;:::i;:::-;29311:103;29441:1;29434:5;29430:13;29423:20;;29216:233;;;:::o;29455:228::-;29595:34;29591:1;29583:6;29579:14;29572:58;29664:11;29659:2;29651:6;29647:15;29640:36;29455:228;:::o;29689:366::-;29831:3;29852:67;29916:2;29911:3;29852:67;:::i;:::-;29845:74;;29928:93;30017:3;29928:93;:::i;:::-;30046:2;30041:3;30037:12;30030:19;;29689:366;;;:::o;30061:419::-;30227:4;30265:2;30254:9;30250:18;30242:26;;30314:9;30308:4;30304:20;30300:1;30289:9;30285:17;30278:47;30342:131;30468:4;30342:131;:::i;:::-;30334:139;;30061:419;;;:::o;30486:227::-;30626:34;30622:1;30614:6;30610:14;30603:58;30695:10;30690:2;30682:6;30678:15;30671:35;30486:227;:::o;30719:366::-;30861:3;30882:67;30946:2;30941:3;30882:67;:::i;:::-;30875:74;;30958:93;31047:3;30958:93;:::i;:::-;31076:2;31071:3;31067:12;31060:19;;30719:366;;;:::o;31091:419::-;31257:4;31295:2;31284:9;31280:18;31272:26;;31344:9;31338:4;31334:20;31330:1;31319:9;31315:17;31308:47;31372:131;31498:4;31372:131;:::i;:::-;31364:139;;31091:419;;;:::o;31516:224::-;31656:34;31652:1;31644:6;31640:14;31633:58;31725:7;31720:2;31712:6;31708:15;31701:32;31516:224;:::o;31746:366::-;31888:3;31909:67;31973:2;31968:3;31909:67;:::i;:::-;31902:74;;31985:93;32074:3;31985:93;:::i;:::-;32103:2;32098:3;32094:12;32087:19;;31746:366;;;:::o;32118:419::-;32284:4;32322:2;32311:9;32307:18;32299:26;;32371:9;32365:4;32361:20;32357:1;32346:9;32342:17;32335:47;32399:131;32525:4;32399:131;:::i;:::-;32391:139;;32118:419;;;:::o;32543:229::-;32683:34;32679:1;32671:6;32667:14;32660:58;32752:12;32747:2;32739:6;32735:15;32728:37;32543:229;:::o;32778:366::-;32920:3;32941:67;33005:2;33000:3;32941:67;:::i;:::-;32934:74;;33017:93;33106:3;33017:93;:::i;:::-;33135:2;33130:3;33126:12;33119:19;;32778:366;;;:::o;33150:419::-;33316:4;33354:2;33343:9;33339:18;33331:26;;33403:9;33397:4;33393:20;33389:1;33378:9;33374:17;33367:47;33431:131;33557:4;33431:131;:::i;:::-;33423:139;;33150:419;;;:::o;33575:305::-;33615:3;33634:20;33652:1;33634:20;:::i;:::-;33629:25;;33668:20;33686:1;33668:20;:::i;:::-;33663:25;;33822:1;33754:66;33750:74;33747:1;33744:81;33741:107;;;33828:18;;:::i;:::-;33741:107;33872:1;33869;33865:9;33858:16;;33575:305;;;;:::o;33886:634::-;34107:4;34145:2;34134:9;34130:18;34122:26;;34194:9;34188:4;34184:20;34180:1;34169:9;34165:17;34158:47;34222:108;34325:4;34316:6;34222:108;:::i;:::-;34214:116;;34377:9;34371:4;34367:20;34362:2;34351:9;34347:18;34340:48;34405:108;34508:4;34499:6;34405:108;:::i;:::-;34397:116;;33886:634;;;;;:::o;34526:228::-;34666:34;34662:1;34654:6;34650:14;34643:58;34735:11;34730:2;34722:6;34718:15;34711:36;34526:228;:::o;34760:366::-;34902:3;34923:67;34987:2;34982:3;34923:67;:::i;:::-;34916:74;;34999:93;35088:3;34999:93;:::i;:::-;35117:2;35112:3;35108:12;35101:19;;34760:366;;;:::o;35132:419::-;35298:4;35336:2;35325:9;35321:18;35313:26;;35385:9;35379:4;35375:20;35371:1;35360:9;35356:17;35349:47;35413:131;35539:4;35413:131;:::i;:::-;35405:139;;35132:419;;;:::o;35557:332::-;35678:4;35716:2;35705:9;35701:18;35693:26;;35729:71;35797:1;35786:9;35782:17;35773:6;35729:71;:::i;:::-;35810:72;35878:2;35867:9;35863:18;35854:6;35810:72;:::i;:::-;35557:332;;;;;:::o;35895:1053::-;36218:4;36256:3;36245:9;36241:19;36233:27;;36270:71;36338:1;36327:9;36323:17;36314:6;36270:71;:::i;:::-;36351:72;36419:2;36408:9;36404:18;36395:6;36351:72;:::i;:::-;36470:9;36464:4;36460:20;36455:2;36444:9;36440:18;36433:48;36498:108;36601:4;36592:6;36498:108;:::i;:::-;36490:116;;36653:9;36647:4;36643:20;36638:2;36627:9;36623:18;36616:48;36681:108;36784:4;36775:6;36681:108;:::i;:::-;36673:116;;36837:9;36831:4;36827:20;36821:3;36810:9;36806:19;36799:49;36865:76;36936:4;36927:6;36865:76;:::i;:::-;36857:84;;35895:1053;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "2106200",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"_doSafeTransferAcceptanceCheck(address,address,address,uint256,uint256,bytes)": "infinite",
"balanceOf(address,uint256)": "infinite",
"balanceOfBatch(address[],uint256[])": "infinite",
"balances(uint256,address)": "infinite",
"baseUri()": "infinite",
"cids(uint256)": "infinite",
"isApprovedForAll(address,address)": "infinite",
"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "infinite",
"safeTransferFrom(address,address,uint256,uint256,bytes)": "infinite",
"setApprovalForAll(address,bool)": "infinite",
"supportsInterface(bytes4)": "796",
"uri(uint256)": "infinite"
},
"internal": {
"_afterTokenTransfer(address,address,address,uint256[] memory,uint256[] memory,bytes memory)": "21",
"_asSingletonArray(uint256)": "infinite",
"_beforeTokenTransfer(address,address,address,uint256[] memory,uint256[] memory,bytes memory)": "21",
"_doSafeBatchTransferAcceptanceCheck(address,address,address,uint256[] memory,uint256[] memory,bytes memory)": "infinite",
"_mint(address,uint256,uint256,bytes memory)": "infinite",
"_mintBatch(address,uint256[] memory,uint256[] memory,bytes memory)": "infinite",
"_safeBatchTransferFrom(address,address,uint256[] memory,uint256[] memory,bytes memory)": "infinite",
"_safeTransferFrom(address,address,uint256,uint256,bytes memory)": "infinite",
"_setApprovalForAll(address,address,bool)": "infinite",
"_setURI(string memory)": "infinite"
}
},
"methodIdentifiers": {
"_doSafeTransferAcceptanceCheck(address,address,address,uint256,uint256,bytes)": "084e9e24",
"balanceOf(address,uint256)": "00fdd58e",
"balanceOfBatch(address[],uint256[])": "4e1273f4",
"balances(uint256,address)": "1f320331",
"baseUri()": "9abc8320",
"cids(uint256)": "704fe710",
"isApprovedForAll(address,address)": "e985e9c5",
"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6",
"safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a",
"setApprovalForAll(address,bool)": "a22cb465",
"supportsInterface(bytes4)": "01ffc9a7",
"uri(uint256)": "0e89341c"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "uri_",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "TransferBatch",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "TransferSingle",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "value",
"type": "string"
},
{
"indexed": true,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "URI",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "_doSafeTransferAcceptanceCheck",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "accounts",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
}
],
"name": "balanceOfBatch",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balances",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "baseUri",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "cids",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeBatchTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "uri",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.13+commit.abaa5c0e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "uri_",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "TransferBatch",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "TransferSingle",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "value",
"type": "string"
},
{
"indexed": true,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "URI",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "_doSafeTransferAcceptanceCheck",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "accounts",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
}
],
"name": "balanceOfBatch",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balances",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "baseUri",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "cids",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeBatchTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "uri",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155 _Available since v3.1._",
"kind": "dev",
"methods": {
"balanceOf(address,uint256)": {
"details": "See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address."
},
"balanceOfBatch(address[],uint256[])": {
"details": "See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."
},
"constructor": {
"details": "See {_setURI}."
},
"isApprovedForAll(address,address)": {
"details": "See {IERC1155-isApprovedForAll}."
},
"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": {
"details": "See {IERC1155-safeBatchTransferFrom}."
},
"safeTransferFrom(address,address,uint256,uint256,bytes)": {
"details": "See {IERC1155-safeTransferFrom}."
},
"setApprovalForAll(address,bool)": {
"details": "See {IERC1155-setApprovalForAll}."
},
"supportsInterface(bytes4)": {
"details": "See {IERC165-supportsInterface}."
},
"uri(uint256)": {
"details": "See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\{id\\}` substring with the actual token type ID."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"erc1155v2/ERC1155.sol": "ERC1155"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"erc1155v2/Address.sol": {
"keccak256": "0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1",
"license": "MIT",
"urls": [
"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269",
"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj"
]
},
"erc1155v2/Context.sol": {
"keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
"license": "MIT",
"urls": [
"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
]
},
"erc1155v2/ERC1155.sol": {
"keccak256": "0xe0bab0b946020788ff4fd41ce38eebf538352b90f2425e7ffccb8c7471f7b64f",
"license": "MIT",
"urls": [
"bzz-raw://a7da0fdca8f1b38ab51aafd1382dc44793297f3493737bec3fecfd99c27160a4",
"dweb:/ipfs/QmVMmiDqUQLzpF6bXvK9e93q65zC1uXUzFT3Yd5F997CFr"
]
},
"erc1155v2/ERC165.sol": {
"keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b",
"license": "MIT",
"urls": [
"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d",
"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"
]
},
"erc1155v2/IERC1155.sol": {
"keccak256": "0xb2d01389fc471b4e523061a52bb21b1f26992b4450613223e81df92e081bcfa2",
"license": "MIT",
"urls": [
"bzz-raw://99b376a7814783897880dbce9ef939e67d5f8e2237032f35f78dcf7e6cd0ee34",
"dweb:/ipfs/QmNoGUL6rNCuiYvrSesNDz3sn83tamjBSsBCGbgnBfESVo"
]
},
"erc1155v2/IERC1155MetadataURI.sol": {
"keccak256": "0x7f3e4e5cb445139a978cada218b6e2c9fbbbd97804914dfefe0e1e6f0534911c",
"license": "MIT",
"urls": [
"bzz-raw://5fc58e139c7729721cb12937fba6cf04bd5f2e46bdc59a12e0e2e06493995d9d",
"dweb:/ipfs/QmNzuVAYBMEGc8QqPex71zr24jTM57ViiqngUoj3y1z9Zh"
]
},
"erc1155v2/IERC1155Receiver.sol": {
"keccak256": "0xfef511c703e7ebdb193d35a67e0d9b70728789b2ac45cc5cf5ee56c4ad034f00",
"license": "MIT",
"urls": [
"bzz-raw://f838e560ba0caddc54ad4ba082e0ff3bf27a721c15bc0cf19791fef7940837a5",
"dweb:/ipfs/QmTwfwYYK4Ky9PPhdDoVVmZJaJ7y2hZDH8YnBQRfiA8Baz"
]
},
"erc1155v2/IERC165.sol": {
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
"license": "MIT",
"urls": [
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
]
},
"erc1155v2/Math.sol": {
"keccak256": "0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6",
"license": "MIT",
"urls": [
"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b",
"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz"
]
},
"erc1155v2/Strings.sol": {
"keccak256": "0x63cc23afeb2d4179b2d00eee0a0d4bc1e899414a633617c691cd727656672a97",
"license": "MIT",
"urls": [
"bzz-raw://2127ef0af0b4200bbb5070338628eb9cfbb7a3ccf4450fecbe420b8b926e869e",
"dweb:/ipfs/QmPxTtDzoyAnErxdBY5c211vBRUbmkpHaD9bNJ7V79yfz3"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import {OperatorFilterer} from "./OperatorFilterer.sol";
/**
* @title DefaultOperatorFilterer
* @notice Inherits from OperatorFilterer and automatically subscribes to the default OpenSea subscription.
*/
abstract contract DefaultOperatorFilterer is OperatorFilterer {
address constant DEFAULT_SUBSCRIPTION = address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6);
constructor() OperatorFilterer(DEFAULT_SUBSCRIPTION, true) {}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC1155/ERC1155.sol)
pragma solidity 0.8.13;
import "./IERC1155.sol";
import "./IERC1155Receiver.sol";
import "./IERC1155MetadataURI.sol";
import "./Address.sol";
import "./Context.sol";
import "./ERC165.sol";
import "./Strings.sol";
/**
* @dev Implementation of the basic standard multi-token.
* See https://eips.ethereum.org/EIPS/eip-1155
* Originally based on code by Enjin: https://github.com/enjin/erc-1155
*
* _Available since v3.1._
*/
contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
using Address for address;
// Mapping from token ID to account balances
mapping(uint256 => mapping(address => uint256)) public balances;
// Mapping from token ID to the IPFS cid
mapping(uint256 => string) public cids;
// Mapping from account to operator approvals
mapping(address => mapping(address => bool)) private _operatorApprovals;
// Used as the URI for all token types by relying on ID substitution, e.g.
string public baseUri;
/**
* @dev See {_setURI}.
*/
constructor(string memory uri_) {
_setURI(uri_);
}
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override(ERC165, IERC165)
returns (bool)
{
return
interfaceId == type(IERC1155).interfaceId ||
interfaceId == type(IERC1155MetadataURI).interfaceId ||
super.supportsInterface(interfaceId);
}
/**
* @dev See {IERC1155MetadataURI-uri}.
*
* This implementation returns the same URI for *all* token types. It relies
* on the token type ID substitution mechanism
* https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
*
* Clients calling this function must replace the `\{id\}` substring with the
* actual token type ID.
*/
function uri(uint256 id)
public
view
virtual
override
returns (string memory)
{
return string(abi.encodePacked(baseUri, cids[id]));
}
/**
* @dev See {IERC1155-balanceOf}.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function balanceOf(address account, uint256 id)
public
view
virtual
override
returns (uint256)
{
require(
account != address(0),
"ERC1155: balance query for the zero address"
);
return balances[id][account];
}
/**
* @dev See {IERC1155-balanceOfBatch}.
*
* Requirements:
*
* - `accounts` and `ids` must have the same length.
*/
function balanceOfBatch(address[] memory accounts, uint256[] memory ids)
public
view
virtual
override
returns (uint256[] memory)
{
require(
accounts.length == ids.length,
"ERC1155: accounts and ids length mismatch"
);
uint256[] memory batchBalances = new uint256[](accounts.length);
for (uint256 i = 0; i < accounts.length; ++i) {
batchBalances[i] = balanceOf(accounts[i], ids[i]);
}
return batchBalances;
}
/**
* @dev See {IERC1155-setApprovalForAll}.
*/
function setApprovalForAll(address operator, bool approved)
public
virtual
override
{
_setApprovalForAll(_msgSender(), operator, approved);
}
/**
* @dev See {IERC1155-isApprovedForAll}.
*/
function isApprovedForAll(address account, address operator)
public
view
virtual
override
returns (bool)
{
return _operatorApprovals[account][operator];
}
/**
* @dev See {IERC1155-safeTransferFrom}.
*/
function safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) public virtual override {
require(
from == _msgSender() || isApprovedForAll(from, _msgSender()),
"ERC1155: caller is not owner nor approved"
);
_safeTransferFrom(from, to, id, amount, data);
}
/**
* @dev See {IERC1155-safeBatchTransferFrom}.
*/
function safeBatchTransferFrom(
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) public virtual override {
require(
from == _msgSender() || isApprovedForAll(from, _msgSender()),
"ERC1155: transfer caller is not owner nor approved"
);
_safeBatchTransferFrom(from, to, ids, amounts, data);
}
/**
* @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - `from` must have a balance of tokens of type `id` of at least `amount`.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function _safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) internal virtual {
require(to != address(0), "ERC1155: transfer to the zero address");
address operator = _msgSender();
uint256[] memory ids = _asSingletonArray(id);
uint256[] memory amounts = _asSingletonArray(amount);
_beforeTokenTransfer(operator, from, to, ids, amounts, data);
uint256 fromBalance = balances[id][from];
require(
fromBalance >= amount,
"ERC1155: insufficient balance for transfer"
);
unchecked {
balances[id][from] = fromBalance - amount;
}
balances[id][to] += amount;
emit TransferSingle(operator, from, to, id, amount);
_afterTokenTransfer(operator, from, to, ids, amounts, data);
_doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
}
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.
*
* Emits a {TransferBatch} event.
*
* Requirements:
*
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function _safeBatchTransferFrom(
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {
require(
ids.length == amounts.length,
"ERC1155: ids and amounts length mismatch"
);
require(to != address(0), "ERC1155: transfer to the zero address");
address operator = _msgSender();
_beforeTokenTransfer(operator, from, to, ids, amounts, data);
for (uint256 i = 0; i < ids.length; ++i) {
uint256 id = ids[i];
uint256 amount = amounts[i];
uint256 fromBalance = balances[id][from];
require(
fromBalance >= amount,
"ERC1155: insufficient balance for transfer"
);
unchecked {
balances[id][from] = fromBalance - amount;
}
balances[id][to] += amount;
}
emit TransferBatch(operator, from, to, ids, amounts);
_afterTokenTransfer(operator, from, to, ids, amounts, data);
_doSafeBatchTransferAcceptanceCheck(
operator,
from,
to,
ids,
amounts,
data
);
}
/**
* @dev Sets a new URI for all token types, by relying on the token type ID
* substitution mechanism
* https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
*
* By this mechanism, any occurrence of the `\{id\}` substring in either the
* URI or any of the amounts in the JSON file at said URI will be replaced by
* clients with the token type ID.
*
* For example, the `https://token-cdn-domain/\{id\}.json` URI would be
* interpreted by clients as
* `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`
* for token type ID 0x4cce0.
*
* See {uri}.
*
* Because these URIs cannot be meaningfully represented by the {URI} event,
* this function emits no events.
*/
function _setURI(string memory newuri) internal virtual {
baseUri = newuri;
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function _mint(
address to,
uint256 id,
uint256 amount,
bytes memory data
) internal virtual {
require(to != address(0), "ERC1155: mint to the zero address");
address operator = _msgSender();
uint256[] memory ids = _asSingletonArray(id);
uint256[] memory amounts = _asSingletonArray(amount);
_beforeTokenTransfer(operator, address(0), to, ids, amounts, data);
balances[id][to] += amount;
emit TransferSingle(operator, address(0), to, id, amount);
_afterTokenTransfer(operator, address(0), to, ids, amounts, data);
_doSafeTransferAcceptanceCheck(
operator,
address(0),
to,
id,
amount,
data
);
}
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function _mintBatch(
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {
require(to != address(0), "ERC1155: mint to the zero address");
require(
ids.length == amounts.length,
"ERC1155: ids and amounts length mismatch"
);
address operator = _msgSender();
_beforeTokenTransfer(operator, address(0), to, ids, amounts, data);
for (uint256 i = 0; i < ids.length; i++) {
balances[ids[i]][to] += amounts[i];
emit TransferSingle(operator, address(0), to, ids[i], amounts[i]);
}
_afterTokenTransfer(operator, address(0), to, ids, amounts, data);
_doSafeBatchTransferAcceptanceCheck(
operator,
address(0),
to,
ids,
amounts,
data
);
}
/**
* @dev Approve `operator` to operate on all of `owner` tokens
*
* Emits a {ApprovalForAll} event.
*/
function _setApprovalForAll(
address owner,
address operator,
bool approved
) internal virtual {
require(owner != operator, "ERC1155: setting approval status for self");
_operatorApprovals[owner][operator] = approved;
emit ApprovalForAll(owner, operator, approved);
}
/**
* @dev Hook that is called before any token transfer. This includes minting
* and burning, as well as batched variants.
*
* The same hook is called on both single and batched variants. For single
* transfers, the length of the `id` and `amount` arrays will be 1.
*
* Calling conditions (for each `id` and `amount` pair):
*
* - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* of token type `id` will be transferred to `to`.
* - When `from` is zero, `amount` tokens of token type `id` will be minted
* for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
* will be burned.
* - `from` and `to` are never both zero.
* - `ids` and `amounts` have the same, non-zero length.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address operator,
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {}
/**
* @dev Hook that is called after any token transfer. This includes minting
* and burning, as well as batched variants.
*
* The same hook is called on both single and batched variants. For single
* transfers, the length of the `id` and `amount` arrays will be 1.
*
* Calling conditions (for each `id` and `amount` pair):
*
* - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* of token type `id` will be transferred to `to`.
* - When `from` is zero, `amount` tokens of token type `id` will be minted
* for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
* will be burned.
* - `from` and `to` are never both zero.
* - `ids` and `amounts` have the same, non-zero length.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address operator,
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {}
function _doSafeTransferAcceptanceCheck(
address operator,
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) public {
if (to.isContract()) {
try
IERC1155Receiver(to).onERC1155Received(
operator,
from,
id,
amount,
data
)
returns (bytes4 response) {
if (response != IERC1155Receiver.onERC1155Received.selector) {
revert("ERC1155: ERC1155Receiver rejected tokens");
}
} catch Error(string memory reason) {
revert(reason);
} catch {
revert("ERC1155: transfer to non ERC1155Receiver implementer");
}
}
}
function _doSafeBatchTransferAcceptanceCheck(
address operator,
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) private {
if (to.isContract()) {
try
IERC1155Receiver(to).onERC1155BatchReceived(
operator,
from,
ids,
amounts,
data
)
returns (bytes4 response) {
if (
response != IERC1155Receiver.onERC1155BatchReceived.selector
) {
revert("ERC1155: ERC1155Receiver rejected tokens");
}
} catch Error(string memory reason) {
revert(reason);
} catch {
revert("ERC1155: transfer to non ERC1155Receiver implementer");
}
}
}
function _asSingletonArray(uint256 element)
private
pure
returns (uint256[] memory)
{
uint256[] memory array = new uint256[](1);
array[0] = element;
return array;
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev Implementation of the {IERC165} interface.
*
* Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
* for the additional interface id that will be supported. For example:
*
* ```solidity
* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
* }
* ```
*
* Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
*/
abstract contract ERC165 is IERC165 {
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./ERC165.sol";
import "./IERC2981Royalties.sol";
/// @dev This is a contract used to add ERC2981 support to ERC721 and 1155
abstract contract ERC2981Base is ERC165, IERC2981Royalties {
struct RoyaltyInfo {
address recipient;
uint24 amount;
}
/// @inheritdoc ERC165
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override
returns (bool)
{
return
interfaceId == type(IERC2981Royalties).interfaceId ||
super.supportsInterface(interfaceId);
}
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./ERC165.sol";
import "./ERC2981Base.sol";
/// @dev This is a contract used to add ERC2981 support to ERC721 and 1155
abstract contract ERC2981PerTokenRoyalties is ERC2981Base {
mapping(uint256 => RoyaltyInfo) internal _royalties;
/// @dev Sets token royalties
/// @param tokenId the token id fir which we register the royalties
/// @param recipient recipient of the royalties
/// @param value percentage (using 2 decimals - 10000 = 100, 0 = 0)
function _setTokenRoyalty(
uint256 tokenId,
address recipient,
uint256 value
) internal {
require(value <= 10000, "ERC2981Royalties: Too high");
_royalties[tokenId] = RoyaltyInfo(recipient, uint24(value));
}
/// @inheritdoc IERC2981Royalties
function royaltyInfo(uint256 tokenId, uint256 value)
external
view
override
returns (address receiver, uint256 royaltyAmount)
{
RoyaltyInfo memory royalties = _royalties[tokenId];
receiver = royalties.recipient;
royaltyAmount = (value * royalties.amount) / 10000;
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC1155/IERC1155.sol)
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev Required interface of an ERC1155 compliant contract, as defined in the
* https://eips.ethereum.org/EIPS/eip-1155[EIP].
*
* _Available since v3.1._
*/
interface IERC1155 is IERC165 {
/**
* @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
*/
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);
/**
* @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
* transfers.
*/
event TransferBatch(
address indexed operator,
address indexed from,
address indexed to,
uint256[] ids,
uint256[] values
);
/**
* @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
* `approved`.
*/
event ApprovalForAll(address indexed account, address indexed operator, bool approved);
/**
* @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
*
* If an {URI} event was emitted for `id`, the standard
* https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
* returned by {IERC1155MetadataURI-uri}.
*/
event URI(string value, uint256 indexed id);
/**
* @dev Returns the amount of tokens of token type `id` owned by `account`.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function balanceOf(address account, uint256 id) external view returns (uint256);
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
*
* Requirements:
*
* - `accounts` and `ids` must have the same length.
*/
function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)
external
view
returns (uint256[] memory);
/**
* @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
*
* Emits an {ApprovalForAll} event.
*
* Requirements:
*
* - `operator` cannot be the caller.
*/
function setApprovalForAll(address operator, bool approved) external;
/**
* @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
*
* See {setApprovalForAll}.
*/
function isApprovedForAll(address account, address operator) external view returns (bool);
/**
* @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.
* - `from` must have a balance of tokens of type `id` of at least `amount`.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes calldata data
) external;
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
*
* Emits a {TransferBatch} event.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function safeBatchTransferFrom(
address from,
address to,
uint256[] calldata ids,
uint256[] calldata amounts,
bytes calldata data
) external;
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol)
pragma solidity ^0.8.0;
import "./IERC1155.sol";
/**
* @dev Interface of the optional ERC1155MetadataExtension interface, as defined
* in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].
*
* _Available since v3.1._
*/
interface IERC1155MetadataURI is IERC1155 {
/**
* @dev Returns the URI for token type `id`.
*
* If the `\{id\}` substring is present in the URI, it must be replaced by
* clients with the actual token type ID.
*/
function uri(uint256 id) external view returns (string memory);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev _Available since v3.1._
*/
interface IERC1155Receiver is IERC165 {
/**
* @dev Handles the receipt of a single ERC1155 token type. This function is
* called at the end of a `safeTransferFrom` after the balance has been updated.
*
* NOTE: To accept the transfer, this must return
* `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
* (i.e. 0xf23a6e61, or its own function selector).
*
* @param operator The address which initiated the transfer (i.e. msg.sender)
* @param from The address which previously owned the token
* @param id The ID of the token being transferred
* @param value The amount of tokens being transferred
* @param data Additional data with no specified format
* @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
*/
function onERC1155Received(
address operator,
address from,
uint256 id,
uint256 value,
bytes calldata data
) external returns (bytes4);
/**
* @dev Handles the receipt of a multiple ERC1155 token types. This function
* is called at the end of a `safeBatchTransferFrom` after the balances have
* been updated.
*
* NOTE: To accept the transfer(s), this must return
* `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
* (i.e. 0xbc197c81, or its own function selector).
*
* @param operator The address which initiated the batch transfer (i.e. msg.sender)
* @param from The address which previously owned the token
* @param ids An array containing ids of each token being transferred (order and length must match values array)
* @param values An array containing amounts of each token being transferred (order and length must match ids array)
* @param data Additional data with no specified format
* @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
*/
function onERC1155BatchReceived(
address operator,
address from,
uint256[] calldata ids,
uint256[] calldata values,
bytes calldata data
) external returns (bytes4);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
/// @title IERC2981Royalties
/// @dev Interface for the ERC2981 - Token Royalty standard
interface IERC2981Royalties {
/// @notice Called with the sale price to determine how much royalty
// is owed and to whom.
/// @param _tokenId - the NFT asset queried for royalty information
/// @param _value - the sale price of the NFT asset specified by _tokenId
/// @return _receiver - address of who should be sent the royalty payment
/// @return _royaltyAmount - the royalty payment amount for value sale price
function royaltyInfo(uint256 _tokenId, uint256 _value)
external
view
returns (address _receiver, uint256 _royaltyAmount);
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
interface IOperatorFilterRegistry {
function isOperatorAllowed(address registrant, address operator) external view returns (bool);
function register(address registrant) external;
function registerAndSubscribe(address registrant, address subscription) external;
function registerAndCopyEntries(address registrant, address registrantToCopy) external;
function unregister(address addr) external;
function updateOperator(address registrant, address operator, bool filtered) external;
function updateOperators(address registrant, address[] calldata operators, bool filtered) external;
function updateCodeHash(address registrant, bytes32 codehash, bool filtered) external;
function updateCodeHashes(address registrant, bytes32[] calldata codeHashes, bool filtered) external;
function subscribe(address registrant, address registrantToSubscribe) external;
function unsubscribe(address registrant, bool copyExistingEntries) external;
function subscriptionOf(address addr) external returns (address registrant);
function subscribers(address registrant) external returns (address[] memory);
function subscriberAt(address registrant, uint256 index) external returns (address);
function copyEntriesOf(address registrant, address registrantToCopy) external;
function isOperatorFiltered(address registrant, address operator) external returns (bool);
function isCodeHashOfFiltered(address registrant, address operatorWithCode) external returns (bool);
function isCodeHashFiltered(address registrant, bytes32 codeHash) external returns (bool);
function filteredOperators(address addr) external returns (address[] memory);
function filteredCodeHashes(address addr) external returns (bytes32[] memory);
function filteredOperatorAt(address registrant, uint256 index) external returns (address);
function filteredCodeHashAt(address registrant, uint256 index) external returns (bytes32);
function isRegistered(address addr) external returns (bool);
function codeHashOf(address addr) external returns (bytes32);
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./Ownable.sol";
import "./ERC1155.sol";
import "./ERC2981PerTokenRoyalties.sol";
import {DefaultOperatorFilterer} from "./DefaultOperatorFilterer.sol";
/// @custom:security-contact contact@verse.works
contract LondonToken is
ERC1155,
Ownable,
ERC2981PerTokenRoyalties,
DefaultOperatorFilterer
{
constructor(
string memory uri_,
string memory contractName_
) ERC1155(uri_) {
mintingManager = 0xe445Fb0297F7D1f507dF708185946210eB6a9DE6;
gatewayManager = 0x1BFe7452477Accc0188c34B3a4e8E3B15bF671B0;
name = contractName_;
}
string public name = "Verse Works v0.4.0";
uint256 public totalSupply;
address public mintingManager;
address public gatewayManager;
modifier onlyMinter() {
require(msg.sender == mintingManager);
_;
}
modifier onlyGatewayManager() {
require(msg.sender == gatewayManager);
_;
}
/**
* @dev OS Operator filtering
*/
function setApprovalForAll(address operator, bool approved)
public
override
onlyAllowedOperatorApproval(operator)
{
super.setApprovalForAll(operator, approved);
}
/**
* @dev OS Operator filtering
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
uint256 amount,
bytes memory data
) public override onlyAllowedOperator(from) {
super.safeTransferFrom(from, to, tokenId, amount, data);
}
/**
* @dev OS Operator filtering
*/
function safeBatchTransferFrom(
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) public virtual override onlyAllowedOperator(from) {
super.safeBatchTransferFrom(from, to, ids, amounts, data);
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
* In additionit sets the royalties for `royaltyRecipient` of the value `royaltyValue`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function mint(
address account,
uint256 id,
uint256 amount,
string memory cid,
address royaltyRecipient,
uint256 royaltyValue
) public onlyMinter {
_mint(account, id, amount, "");
if (royaltyValue > 0) {
_setTokenRoyalty(id, royaltyRecipient, royaltyValue);
}
cids[id] = cid;
totalSupply += amount;
}
/**
* @dev Batch version of `mint`.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function mintBatch(
address to,
uint256[] memory ids,
uint256[] memory amounts,
string[] memory tokenCids,
address[] memory royaltyRecipients,
uint256[] memory royaltyValues
) public onlyMinter {
require(
ids.length == royaltyRecipients.length &&
ids.length == royaltyValues.length,
"ERC1155: Arrays length mismatch"
);
_mintBatch(to, ids, amounts, "");
for (uint256 i; i < ids.length; i++) {
if (royaltyValues[i] > 0) {
_setTokenRoyalty(
ids[i],
royaltyRecipients[i],
royaltyValues[i]
);
}
// update IPFS CID
cids[ids[i]] = tokenCids[i];
}
uint256 count;
for (uint256 i = 0; i < ids.length; i++) {
for (uint256 j = 0; j < amounts.length; j++) {
count += ids[i] * amounts[j];
}
}
totalSupply += count;
}
/**
* @dev Checks for supported interface.
*
*/
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override(ERC1155, ERC2981Base)
returns (bool)
{
return super.supportsInterface(interfaceId);
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
* In additionit sets the royalties for `royaltyRecipient` of the value `royaltyValue`.
* Method emits two transfer events.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
*/
function mintWithCreator(
address creator,
address to,
uint256 tokenId,
string memory cid,
address royaltyRecipient,
uint256 royaltyValue
) public onlyMinter {
require(to != address(0), "mint to the zero address");
balances[tokenId][to] += 1;
totalSupply += 1;
cids[tokenId] = cid;
if (royaltyValue > 0) {
_setTokenRoyalty(tokenId, royaltyRecipient, royaltyValue);
}
address operator = _msgSender();
emit TransferSingle(operator, address(0), creator, tokenId, 1);
emit TransferSingle(operator, creator, to, tokenId, 1);
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
* In additionit sets the royalties for `royaltyRecipient` of the value `royaltyValue`.
* Method emits two transfer events.
*
* Emits a {TransferSingle} events for intermediate artist.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function batchMintWithCreator(
address[] memory to,
address creator,
uint256[] memory tokenIds,
string[] memory tokenCids,
address royaltyRecipient,
uint256 royaltyValue
) public onlyMinter {
require(
tokenIds.length == to.length && tokenIds.length == tokenCids.length,
"ERC1155: Arrays length mismatch"
);
address operator = _msgSender();
for (uint256 i = 0; i < tokenIds.length; i++) {
balances[tokenIds[i]][to[i]] += 1;
// check if recipient can accept NFT
_doSafeTransferAcceptanceCheck(
operator,
address(0),
to[i],
tokenIds[i],
1,
""
);
// update royalties
if (royaltyValue > 0) {
_setTokenRoyalty(tokenIds[i], royaltyRecipient, royaltyValue);
}
// update IPFS CID
cids[tokenIds[i]] = tokenCids[i];
// emit events based on creator provided
if (creator == address(0)) {
emit TransferSingle(
operator,
address(0),
to[i],
tokenIds[i],
1
);
} else {
emit TransferSingle(
operator,
address(0),
creator,
tokenIds[i],
1
);
emit TransferSingle(operator, creator, to[i], tokenIds[i], 1);
}
}
// update total supply
totalSupply += tokenIds.length;
}
/**
* @dev Sets base URI for metadata.
*
*/
function setURI(string memory newuri) public onlyGatewayManager {
_setURI(newuri);
}
/**
* @dev Sets new minter for the contract.
*
*/
function setMintingManager(address minter_) public onlyOwner {
mintingManager = minter_;
}
/**
* @dev Sets new gateway manager for the contract.
*
*/
function setGatewayManager(address gatewayManager_) public onlyOwner {
gatewayManager = gatewayManager_;
}
/**
* @dev Sets royalties for `tokenId` and `tokenRecipient` with royalty value `royaltyValue`.
*
*/
function setRoyalties(
uint256 tokenId,
address royaltyRecipient,
uint256 royaltyValue
) public onlyOwner {
_setTokenRoyalty(tokenId, royaltyRecipient, royaltyValue);
}
/**
* @dev Sets IPFS cid metadata hash for token id `tokenId`.
*
*/
function setCID(uint256 tokenId, string memory cid)
public
onlyGatewayManager
{
cids[tokenId] = cid;
}
/**
* @dev Sets IPFS cid metadata hash for token id `tokenId`.
*
*/
function setCIDs(uint256[] memory tokenIds, string[] memory cids_)
public
onlyGatewayManager
{
require(
tokenIds.length == cids_.length,
"ERC1155: Arrays length mismatch"
);
for (uint256 i = 0; i < tokenIds.length; i++) {
cids[tokenIds[i]] = cids_[i];
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)
pragma solidity ^0.8.0;
/**
* @dev Standard math utilities missing in the Solidity language.
*/
library Math {
enum Rounding {
Down, // Toward negative infinity
Up, // Toward infinity
Zero // Toward zero
}
/**
* @dev Returns the largest of two numbers.
*/
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a > b ? a : b;
}
/**
* @dev Returns the smallest of two numbers.
*/
function min(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? a : b;
}
/**
* @dev Returns the average of two numbers. The result is rounded towards
* zero.
*/
function average(uint256 a, uint256 b) internal pure returns (uint256) {
// (a + b) / 2 can overflow.
return (a & b) + (a ^ b) / 2;
}
/**
* @dev Returns the ceiling of the division of two numbers.
*
* This differs from standard division with `/` in that it rounds up instead
* of rounding down.
*/
function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {
// (a + b - 1) / b can overflow on addition, so we distribute.
return a == 0 ? 0 : (a - 1) / b + 1;
}
/**
* @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
* @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
* with further edits by Uniswap Labs also under MIT license.
*/
function mulDiv(
uint256 x,
uint256 y,
uint256 denominator
) internal pure returns (uint256 result) {
unchecked {
// 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use
// use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256
// variables such that product = prod1 * 2^256 + prod0.
uint256 prod0; // Least significant 256 bits of the product
uint256 prod1; // Most significant 256 bits of the product
assembly {
let mm := mulmod(x, y, not(0))
prod0 := mul(x, y)
prod1 := sub(sub(mm, prod0), lt(mm, prod0))
}
// Handle non-overflow cases, 256 by 256 division.
if (prod1 == 0) {
return prod0 / denominator;
}
// Make sure the result is less than 2^256. Also prevents denominator == 0.
require(denominator > prod1);
///////////////////////////////////////////////
// 512 by 256 division.
///////////////////////////////////////////////
// Make division exact by subtracting the remainder from [prod1 prod0].
uint256 remainder;
assembly {
// Compute remainder using mulmod.
remainder := mulmod(x, y, denominator)
// Subtract 256 bit number from 512 bit number.
prod1 := sub(prod1, gt(remainder, prod0))
prod0 := sub(prod0, remainder)
}
// Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.
// See https://cs.stackexchange.com/q/138556/92363.
// Does not overflow because the denominator cannot be zero at this stage in the function.
uint256 twos = denominator & (~denominator + 1);
assembly {
// Divide denominator by twos.
denominator := div(denominator, twos)
// Divide [prod1 prod0] by twos.
prod0 := div(prod0, twos)
// Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.
twos := add(div(sub(0, twos), twos), 1)
}
// Shift in bits from prod1 into prod0.
prod0 |= prod1 * twos;
// Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such
// that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for
// four bits. That is, denominator * inv = 1 mod 2^4.
uint256 inverse = (3 * denominator) ^ 2;
// Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works
// in modular arithmetic, doubling the correct bits in each step.
inverse *= 2 - denominator * inverse; // inverse mod 2^8
inverse *= 2 - denominator * inverse; // inverse mod 2^16
inverse *= 2 - denominator * inverse; // inverse mod 2^32
inverse *= 2 - denominator * inverse; // inverse mod 2^64
inverse *= 2 - denominator * inverse; // inverse mod 2^128
inverse *= 2 - denominator * inverse; // inverse mod 2^256
// Because the division is now exact we can divide by multiplying with the modular inverse of denominator.
// This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is
// less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1
// is no longer required.
result = prod0 * inverse;
return result;
}
}
/**
* @notice Calculates x * y / denominator with full precision, following the selected rounding direction.
*/
function mulDiv(
uint256 x,
uint256 y,
uint256 denominator,
Rounding rounding
) internal pure returns (uint256) {
uint256 result = mulDiv(x, y, denominator);
if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
result += 1;
}
return result;
}
/**
* @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.
*
* Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11).
*/
function sqrt(uint256 a) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
// For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.
//
// We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have
// `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.
//
// This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`
// → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`
// → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`
//
// Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.
uint256 result = 1 << (log2(a) >> 1);
// At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,
// since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at
// every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision
// into the expected uint128 result.
unchecked {
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
return min(result, a / result);
}
}
/**
* @notice Calculates sqrt(a), following the selected rounding direction.
*/
function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {
unchecked {
uint256 result = sqrt(a);
return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);
}
}
/**
* @dev Return the log in base 2, rounded down, of a positive value.
* Returns 0 if given 0.
*/
function log2(uint256 value) internal pure returns (uint256) {
uint256 result = 0;
unchecked {
if (value >> 128 > 0) {
value >>= 128;
result += 128;
}
if (value >> 64 > 0) {
value >>= 64;
result += 64;
}
if (value >> 32 > 0) {
value >>= 32;
result += 32;
}
if (value >> 16 > 0) {
value >>= 16;
result += 16;
}
if (value >> 8 > 0) {
value >>= 8;
result += 8;
}
if (value >> 4 > 0) {
value >>= 4;
result += 4;
}
if (value >> 2 > 0) {
value >>= 2;
result += 2;
}
if (value >> 1 > 0) {
result += 1;
}
}
return result;
}
/**
* @dev Return the log in base 2, following the selected rounding direction, of a positive value.
* Returns 0 if given 0.
*/
function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {
unchecked {
uint256 result = log2(value);
return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);
}
}
/**
* @dev Return the log in base 10, rounded down, of a positive value.
* Returns 0 if given 0.
*/
function log10(uint256 value) internal pure returns (uint256) {
uint256 result = 0;
unchecked {
if (value >= 10**64) {
value /= 10**64;
result += 64;
}
if (value >= 10**32) {
value /= 10**32;
result += 32;
}
if (value >= 10**16) {
value /= 10**16;
result += 16;
}
if (value >= 10**8) {
value /= 10**8;
result += 8;
}
if (value >= 10**4) {
value /= 10**4;
result += 4;
}
if (value >= 10**2) {
value /= 10**2;
result += 2;
}
if (value >= 10**1) {
result += 1;
}
}
return result;
}
/**
* @dev Return the log in base 10, following the selected rounding direction, of a positive value.
* Returns 0 if given 0.
*/
function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {
unchecked {
uint256 result = log10(value);
return result + (rounding == Rounding.Up && 10**result < value ? 1 : 0);
}
}
/**
* @dev Return the log in base 256, rounded down, of a positive value.
* Returns 0 if given 0.
*
* Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.
*/
function log256(uint256 value) internal pure returns (uint256) {
uint256 result = 0;
unchecked {
if (value >> 128 > 0) {
value >>= 128;
result += 16;
}
if (value >> 64 > 0) {
value >>= 64;
result += 8;
}
if (value >> 32 > 0) {
value >>= 32;
result += 4;
}
if (value >> 16 > 0) {
value >>= 16;
result += 2;
}
if (value >> 8 > 0) {
result += 1;
}
}
return result;
}
/**
* @dev Return the log in base 10, following the selected rounding direction, of a positive value.
* Returns 0 if given 0.
*/
function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {
unchecked {
uint256 result = log256(value);
return result + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0);
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import {IOperatorFilterRegistry} from "./IOperatorFilterRegistry.sol";
/**
* @title OperatorFilterer
* @notice Abstract contract whose constructor automatically registers and optionally subscribes to or copies another
* registrant's entries in the OperatorFilterRegistry.
* @dev This smart contract is meant to be inherited by token contracts so they can use the following:
* - `onlyAllowedOperator` modifier for `transferFrom` and `safeTransferFrom` methods.
* - `onlyAllowedOperatorApproval` modifier for `approve` and `setApprovalForAll` methods.
*/
abstract contract OperatorFilterer {
error OperatorNotAllowed(address operator);
IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY =
IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E);
constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {
// If an inheriting token contract is deployed to a network without the registry deployed, the modifier
// will not revert, but the contract will need to be registered with the registry once it is deployed in
// order for the modifier to filter addresses.
if (address(OPERATOR_FILTER_REGISTRY).code.length > 0) {
if (subscribe) {
OPERATOR_FILTER_REGISTRY.registerAndSubscribe(address(this), subscriptionOrRegistrantToCopy);
} else {
if (subscriptionOrRegistrantToCopy != address(0)) {
OPERATOR_FILTER_REGISTRY.registerAndCopyEntries(address(this), subscriptionOrRegistrantToCopy);
} else {
OPERATOR_FILTER_REGISTRY.register(address(this));
}
}
}
}
modifier onlyAllowedOperator(address from) virtual {
// Allow spending tokens from addresses with balance
// Note that this still allows listings and marketplaces with escrow to transfer tokens if transferred
// from an EOA.
if (from != msg.sender) {
_checkFilterOperator(msg.sender);
}
_;
}
modifier onlyAllowedOperatorApproval(address operator) virtual {
_checkFilterOperator(operator);
_;
}
function _checkFilterOperator(address operator) internal view virtual {
// Check registry code length to facilitate testing in environments without a deployed registry.
if (address(OPERATOR_FILTER_REGISTRY).code.length > 0) {
if (!OPERATOR_FILTER_REGISTRY.isOperatorAllowed(address(this), operator)) {
revert OperatorNotAllowed(operator);
}
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "./Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)
pragma solidity ^0.8.0;
import "./Math.sol";
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _SYMBOLS = "0123456789abcdef";
uint8 private constant _ADDRESS_LENGTH = 20;
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
unchecked {
uint256 length = Math.log10(value) + 1;
string memory buffer = new string(length);
uint256 ptr;
/// @solidity memory-safe-assembly
assembly {
ptr := add(buffer, add(32, length))
}
while (true) {
ptr--;
/// @solidity memory-safe-assembly
assembly {
mstore8(ptr, byte(mod(value, 10), _SYMBOLS))
}
value /= 10;
if (value == 0) break;
}
return buffer;
}
}
/**
* @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
*/
function toHexString(uint256 value) internal pure returns (string memory) {
unchecked {
return toHexString(value, Math.log256(value) + 1);
}
}
/**
* @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
*/
function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
bytes memory buffer = new bytes(2 * length + 2);
buffer[0] = "0";
buffer[1] = "x";
for (uint256 i = 2 * length + 1; i > 1; --i) {
buffer[i] = _SYMBOLS[value & 0xf];
value >>= 4;
}
require(value == 0, "Strings: hex length insufficient");
return string(buffer);
}
/**
* @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
*/
function toHexString(address addr) internal pure returns (string memory) {
return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
}
}
View raw

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

View raw

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

This file has been truncated, but you can view the full file.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_1965": {
"entryPoint": null,
"id": 1965,
"parameterSlots": 2,
"returnSlots": 0
},
"@_3573": {
"entryPoint": null,
"id": 3573,
"parameterSlots": 2,
"returnSlots": 0
},
"@_3656": {
"entryPoint": null,
"id": 3656,
"parameterSlots": 0,
"returnSlots": 0
},
"@_372": {
"entryPoint": null,
"id": 372,
"parameterSlots": 0,
"returnSlots": 0
},
"@_423": {
"entryPoint": null,
"id": 423,
"parameterSlots": 1,
"returnSlots": 0
},
"@_msgSender_341": {
"entryPoint": 941,
"id": 341,
"parameterSlots": 0,
"returnSlots": 1
},
"@_setURI_943": {
"entryPoint": 913,
"id": 943,
"parameterSlots": 1,
"returnSlots": 0
},
"@_transferOwnership_3744": {
"entryPoint": 949,
"id": 3744,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 1610,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 1685,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": {
"entryPoint": 1736,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1921,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1983,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
"entryPoint": 1938,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1471,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1323,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1502,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1901,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1869,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 1556,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 2059,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1417,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 2012,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1370,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1343,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1348,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1338,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1333,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1353,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5017:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:18",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:18"
},
"nodeType": "YulFunctionCall",
"src": "67:9:18"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:18"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:18",
"type": ""
}
],
"src": "7:75:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:18"
},
"nodeType": "YulFunctionCall",
"src": "187:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:18"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:18"
},
"nodeType": "YulFunctionCall",
"src": "310:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:18"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:18"
},
"nodeType": "YulFunctionCall",
"src": "433:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:18"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "546:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "563:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "566:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "556:6:18"
},
"nodeType": "YulFunctionCall",
"src": "556:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "556:12:18"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "457:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "628:54:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "638:38:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "656:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "663:2:18",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "652:3:18"
},
"nodeType": "YulFunctionCall",
"src": "652:14:18"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "672:2:18",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "668:3:18"
},
"nodeType": "YulFunctionCall",
"src": "668:7:18"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "648:3:18"
},
"nodeType": "YulFunctionCall",
"src": "648:28:18"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "638:6:18"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "611:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "621:6:18",
"type": ""
}
],
"src": "580:102:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "716:152:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "733:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "736:77:18",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "726:6:18"
},
"nodeType": "YulFunctionCall",
"src": "726:88:18"
},
"nodeType": "YulExpressionStatement",
"src": "726:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "830:1:18",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "833:4:18",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "823:6:18"
},
"nodeType": "YulFunctionCall",
"src": "823:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "823:15:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "854:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "857:4:18",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "847:6:18"
},
"nodeType": "YulFunctionCall",
"src": "847:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "847:15:18"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "688:180:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "917:238:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "927:58:18",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "949:6:18"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "979:4:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "957:21:18"
},
"nodeType": "YulFunctionCall",
"src": "957:27:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "945:3:18"
},
"nodeType": "YulFunctionCall",
"src": "945:40:18"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "931:10:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1096:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1098:16:18"
},
"nodeType": "YulFunctionCall",
"src": "1098:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "1098:18:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1039:10:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1051:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1036:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1036:34:18"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1075:10:18"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1087:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1072:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1072:22:18"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1033:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1033:62:18"
},
"nodeType": "YulIf",
"src": "1030:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1134:2:18",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1138:10:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1127:6:18"
},
"nodeType": "YulFunctionCall",
"src": "1127:22:18"
},
"nodeType": "YulExpressionStatement",
"src": "1127:22:18"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "903:6:18",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "911:4:18",
"type": ""
}
],
"src": "874:281:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1202:88:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1212:30:18",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1222:18:18"
},
"nodeType": "YulFunctionCall",
"src": "1222:20:18"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1212:6:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1271:6:18"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1279:4:18"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1251:19:18"
},
"nodeType": "YulFunctionCall",
"src": "1251:33:18"
},
"nodeType": "YulExpressionStatement",
"src": "1251:33:18"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1186:4:18",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1195:6:18",
"type": ""
}
],
"src": "1161:129:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:241:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1468:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1470:16:18"
},
"nodeType": "YulFunctionCall",
"src": "1470:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "1470:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1440:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1448:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1437:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1437:30:18"
},
"nodeType": "YulIf",
"src": "1434:56:18"
},
{
"nodeType": "YulAssignment",
"src": "1500:37:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1530:6:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1508:21:18"
},
"nodeType": "YulFunctionCall",
"src": "1508:29:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1500:4:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1574:23:18",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1586:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1592:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1582:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1582:15:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1574:4:18"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1347:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1358:4:18",
"type": ""
}
],
"src": "1296:308:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1659:258:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1669:10:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1678:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1673:1:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1738:63:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1763:3:18"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1768:1:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1759:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1759:11:18"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1782:3:18"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1787:1:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1778:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1778:11:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1772:5:18"
},
"nodeType": "YulFunctionCall",
"src": "1772:18:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1752:6:18"
},
"nodeType": "YulFunctionCall",
"src": "1752:39:18"
},
"nodeType": "YulExpressionStatement",
"src": "1752:39:18"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1699:1:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1702:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1696:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1696:13:18"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1710:19:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1712:15:18",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1721:1:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1724:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1717:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1717:10:18"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1712:1:18"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1692:3:18",
"statements": []
},
"src": "1688:113:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1835:76:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1885:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1890:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1881:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1881:16:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1899:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1874:6:18"
},
"nodeType": "YulFunctionCall",
"src": "1874:27:18"
},
"nodeType": "YulExpressionStatement",
"src": "1874:27:18"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1816:1:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1819:6:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1813:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1813:13:18"
},
"nodeType": "YulIf",
"src": "1810:101:18"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1641:3:18",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1646:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1651:6:18",
"type": ""
}
],
"src": "1610:307:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2018:326:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2028:75:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2095:6:18"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2053:41:18"
},
"nodeType": "YulFunctionCall",
"src": "2053:49:18"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2037:15:18"
},
"nodeType": "YulFunctionCall",
"src": "2037:66:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2028:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2119:5:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2126:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2112:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2112:21:18"
},
"nodeType": "YulExpressionStatement",
"src": "2112:21:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2142:27:18",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2157:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2164:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2153:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2153:16:18"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2146:3:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2207:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2209:77:18"
},
"nodeType": "YulFunctionCall",
"src": "2209:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "2209:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2188:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2193:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2184:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2184:16:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2202:3:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2181:2:18"
},
"nodeType": "YulFunctionCall",
"src": "2181:25:18"
},
"nodeType": "YulIf",
"src": "2178:112:18"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2321:3:18"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2326:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:18"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2299:21:18"
},
"nodeType": "YulFunctionCall",
"src": "2299:39:18"
},
"nodeType": "YulExpressionStatement",
"src": "2299:39:18"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1991:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1996:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2004:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2012:5:18",
"type": ""
}
],
"src": "1923:421:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2437:282:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2486:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2488:77:18"
},
"nodeType": "YulFunctionCall",
"src": "2488:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "2488:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2465:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2473:4:18",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2461:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2461:17:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2480:3:18"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2457:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2457:27:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2450:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2450:35:18"
},
"nodeType": "YulIf",
"src": "2447:122:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2578:27:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2598:6:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2592:5:18"
},
"nodeType": "YulFunctionCall",
"src": "2592:13:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2582:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2614:99:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2686:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2694:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2682:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2682:17:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2701:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2709:3:18"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "2623:58:18"
},
"nodeType": "YulFunctionCall",
"src": "2623:90:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2614:5:18"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2415:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2423:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2431:5:18",
"type": ""
}
],
"src": "2364:355:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2839:739:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2885:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2887:77:18"
},
"nodeType": "YulFunctionCall",
"src": "2887:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "2887:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2860:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2869:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2856:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2856:23:18"
},
{
"kind": "number",
"nodeTyp
View raw

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

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