{
  "contractName": "ERC721CreatorImplementation",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "AdminApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "AdminRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "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": false,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "ApproveTransferUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "DefaultRoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "ExtensionApproveTransferUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionBlacklisted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "ExtensionRoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionUnregistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "permissions",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "MintPermissionsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "RoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAdmins",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "admins",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getApproveTransfer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getExtensions",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "extensions",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "isAdmin",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "revokeAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "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": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveTransferExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        }
      ],
      "name": "initialize",
      "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": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        }
      ],
      "name": "registerExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "baseURIIdentical",
          "type": "bool"
        }
      ],
      "name": "registerExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "unregisterExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "blacklistExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "identical",
          "type": "bool"
        }
      ],
      "name": "setBaseTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefixExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefix",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "permissions",
          "type": "address"
        }
      ],
      "name": "setMintPermissions",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "mintBase",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "mintBase",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintBaseBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "count",
          "type": "uint16"
        }
      ],
      "name": "mintBaseBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "mintExtension",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint80",
          "name": "data",
          "type": "uint80"
        }
      ],
      "name": "mintExtension",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "mintExtension",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintExtensionBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint80[]",
          "name": "data",
          "type": "uint80[]"
        }
      ],
      "name": "mintExtensionBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "count",
          "type": "uint16"
        }
      ],
      "name": "mintExtensionBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenExtension",
      "outputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyalties",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyalties",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyaltiesExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getRoyalties",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFees",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFeeRecipients",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFeeBps",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "royaltyInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "setApproveTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "",
          "type": "uint80"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":false,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"ApproveTransferUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"DefaultRoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"ExtensionApproveTransferUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"ExtensionRoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"permissions\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"MintPermissionsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"RoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"blacklistExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdmins\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApproveTransfer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExtensions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"extensions\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFeeBps\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFeeRecipients\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFees\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getRoyalties\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mintBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"mintBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintBaseBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"count\",\"type\":\"uint16\"}],\"name\":\"mintBaseBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mintExtension\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint80\",\"name\":\"data\",\"type\":\"uint80\"}],\"name\":\"mintExtension\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"mintExtension\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintExtensionBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint80[]\",\"name\":\"data\",\"type\":\"uint80[]\"}],\"name\":\"mintExtensionBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"count\",\"type\":\"uint16\"}],\"name\":\"mintExtensionBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"registerExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"baseURIIdentical\",\"type\":\"bool\"}],\"name\":\"registerExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"revokeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"setApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveTransferExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setBaseTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setBaseTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"identical\",\"type\":\"bool\"}],\"name\":\"setBaseTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permissions\",\"type\":\"address\"}],\"name\":\"setMintPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyaltiesExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefix\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefixExtension\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenExtension\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"unregisterExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721Creator implementation\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"blacklistExtension(address)\":{\"details\":\"See {ICreatorCore-blacklistExtension}.\"},\"burn(uint256)\":{\"details\":\"See {IERC721CreatorCore-burn}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"getApproveTransfer()\":{\"details\":\"See {ICreatorCore-getApproveTransfer}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getExtensions()\":{\"details\":\"See {ICreatorCore-getExtensions}.\"},\"getFeeBps(uint256)\":{\"details\":\"See {ICreatorCore-getFeeBps}.\"},\"getFeeRecipients(uint256)\":{\"details\":\"See {ICreatorCore-getFeeRecipients}.\"},\"getFees(uint256)\":{\"details\":\"See {ICreatorCore-getFees}.\"},\"getRoyalties(uint256)\":{\"details\":\"See {ICreatorCore-getRoyalties}.\"},\"isAdmin(address)\":{\"details\":\"See {IAdminControl-isAdmin}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"mintBase(address)\":{\"details\":\"See {IERC721CreatorCore-mintBase}.\"},\"mintBase(address,string)\":{\"details\":\"See {IERC721CreatorCore-mintBase}.\"},\"mintBaseBatch(address,string[])\":{\"details\":\"See {IERC721CreatorCore-mintBaseBatch}.\"},\"mintBaseBatch(address,uint16)\":{\"details\":\"See {IERC721CreatorCore-mintBaseBatch}.\"},\"mintExtension(address)\":{\"details\":\"See {IERC721CreatorCore-mintExtension}.\"},\"mintExtension(address,string)\":{\"details\":\"See {IERC721CreatorCore-mintExtension}.\"},\"mintExtension(address,uint80)\":{\"details\":\"See {IERC721CreatorCore-mintExtension}.\"},\"mintExtensionBatch(address,string[])\":{\"details\":\"See {IERC721CreatorCore-mintExtensionBatch}.\"},\"mintExtensionBatch(address,uint16)\":{\"details\":\"See {IERC721CreatorCore-mintExtensionBatch}.\"},\"mintExtensionBatch(address,uint80[])\":{\"details\":\"See {IERC721CreatorCore-mintExtensionBatch}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"registerExtension(address,string)\":{\"details\":\"See {ICreatorCore-registerExtension}.\"},\"registerExtension(address,string,bool)\":{\"details\":\"See {ICreatorCore-registerExtension}.\"},\"renounceOwnership()\":{\"details\":\"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.\"},\"revokeAdmin(address)\":{\"details\":\"See {IAdminControl-revokeAdmin}.\"},\"royaltyInfo(uint256,uint256)\":{\"details\":\"See {ICreatorCore-royaltyInfo}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setApproveTransfer(address)\":{\"details\":\"See {ICreatorCore-setApproveTransfer}.\"},\"setApproveTransferExtension(bool)\":{\"details\":\"See {ICreatorCore-setApproveTransferExtension}.\"},\"setBaseTokenURI(string)\":{\"details\":\"See {ICreatorCore-setBaseTokenURI}.\"},\"setBaseTokenURIExtension(string)\":{\"details\":\"See {ICreatorCore-setBaseTokenURIExtension}.\"},\"setBaseTokenURIExtension(string,bool)\":{\"details\":\"See {ICreatorCore-setBaseTokenURIExtension}.\"},\"setMintPermissions(address,address)\":{\"details\":\"See {ICreatorCore-setMintPermissions}.\"},\"setRoyalties(address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyalties}.\"},\"setRoyalties(uint256,address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyalties}.\"},\"setRoyaltiesExtension(address,address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyaltiesExtension}.\"},\"setTokenURI(uint256,string)\":{\"details\":\"See {ICreatorCore-setTokenURI}.\"},\"setTokenURI(uint256[],string[])\":{\"details\":\"See {ICreatorCore-setTokenURI}.\"},\"setTokenURIExtension(uint256,string)\":{\"details\":\"See {ICreatorCore-setTokenURIExtension}.\"},\"setTokenURIExtension(uint256[],string[])\":{\"details\":\"See {ICreatorCore-setTokenURIExtension}.\"},\"setTokenURIPrefix(string)\":{\"details\":\"See {ICreatorCore-setTokenURIPrefix}.\"},\"setTokenURIPrefixExtension(string)\":{\"details\":\"See {ICreatorCore-setTokenURIPrefixExtension}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenData(uint256)\":{\"details\":\"See {IERC721CreatorCore-tokenData}.\"},\"tokenExtension(uint256)\":{\"details\":\"See {IERC721CreatorCore-tokenExtension}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unregisterExtension(address)\":{\"details\":\"See {ICreatorCore-unregisterExtension}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(string,string)\":{\"notice\":\"Initializer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ERC721CreatorImplementation.sol\":\"ERC721CreatorImplementation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":25},\"remappings\":[]},\"sources\":{\"@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol\":{\"keccak256\":\"0x3823f6776d95b9bd80a94d4d216bf490953e853ef3e39e9984696a059acb627e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be05229f3ad39f0eb67377e7c738996b7ec06963dd229df767b1103ede32e3c7\",\"dweb:/ipfs/QmSte72PAanW861DF3FWbn2wyfYzYPtkndqdBEphLqZoLP\"]},\"@manifoldxyz/libraries-solidity/contracts/access/IAdminControl.sol\":{\"keccak256\":\"0x7cc2e4e7d9052532f445e62ec1fa2f05cc0f5d1d8ee1fea913b43a132277bf2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://266618317d0654fe209b5450b8b5afa3a4a8d41294a2b37ddbae540099859887\",\"dweb:/ipfs/QmYksDqoxhachoqZquXGtjfiuAWJ1rxAKLtUYPL3YboBkE\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b\",\"dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"project:/contracts/ERC721CreatorImplementation.sol\":{\"keccak256\":\"0xbf41372636a356a83abbe1cbf794a8c41aea077652b61fd79ae70944ae6f618e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e123f72d65b310e0cd97536f4e2e241718ddf85e2c7a51b658079055bf29643\",\"dweb:/ipfs/QmYUCMD7pSWBrvq4Sdro2R7yFWgCftDeXBymLeSJTYHexu\"]},\"project:/contracts/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"project:/contracts/core/ERC721CreatorCore.sol\":{\"keccak256\":\"0x6927d1aba334eb5502e3a4a9d573d2cf10323bb9dd3f9a004f9f0831733cb00a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce20d2dbd6f46a443ac666424c2c03c4d1f9b52295fca91b830649853314515\",\"dweb:/ipfs/QmRxLCpSFHCevQLAioPopYfxifjtMoNST5pM56yY1HnxdQ\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/core/IERC721CreatorCore.sol\":{\"keccak256\":\"0xb168262afd1960a48d9c2088b7c24df3c0e5e190d2e2451e8af38983cf713bad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b8e621daf8a34967aa796482e02521390328f84a130f064e67aafc1b11748e5\",\"dweb:/ipfs/QmRC4suf2UXxkfy9NazSHwVAHLFeuzqAuQPmZrf1KQfX7f\"]},\"project:/contracts/extensions/ERC721/IERC721CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0xf775f61378aaabce44f639c5ba3978dcd891a3a25379a9465a161edd5f2ca486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67ca952670ffe8bc506b8a59cd5f06b5d6524946013e72023ed53a7d3f97a4f\",\"dweb:/ipfs/QmUXt1nMDmCeHN8SuHDUUZdMbBvZsVJHeborAu1pWtFgHS\"]},\"project:/contracts/extensions/ERC721/IERC721CreatorExtensionBurnable.sol\":{\"keccak256\":\"0xfe990176cd9da70d2241bb28b07155555bc1258350a809dc45165b4ad540d6c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7629f325fcd4348ffeca7e4abba3517f8767736c0545f6deb9bf71a361ccdc0c\",\"dweb:/ipfs/QmQGx2M1nkQGJXU8tVE56xiP8pgq7dQxqrnWPDjMDzstuH\"]},\"project:/contracts/extensions/ICreatorExtensionRoyalties.sol\":{\"keccak256\":\"0xf61dcf7e6bc3e49e629630ad28377f079a31b154ecd0e604d1c0a51ae2a057f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fda5e6d49a47fbe347ed9198c1fff5555bd687a3a73d2a9f45d5c3a2d053e40\",\"dweb:/ipfs/QmdrLJ3rscxvpMTjdRp1FyhPtYDTDL1CCQyhFeLFuFkFXH\"]},\"project:/contracts/extensions/ICreatorExtensionTokenURI.sol\":{\"keccak256\":\"0x6c8ca804ee7dea9d78f0dacdd9233b1b75ca2b2fa517f52f0fdf6beb34780a51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a04a6f0cce2bbdb022a8125e147519c7fbaa89692c8f0cfee69a67a2956316f\",\"dweb:/ipfs/QmdUxwBEnFshm1j5FEcJctC7DbFWUznis2LaPcKR7FEZX7\"]},\"project:/contracts/permissions/ERC721/IERC721CreatorMintPermissions.sol\":{\"keccak256\":\"0x9df5ea824141ac0225b240688d6b964d31e4b525c221e4e02b93955500996115\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ac75988c6c21b64e7a5da269879c23c7f818c8c47962b7e74a2af25c7b78008\",\"dweb:/ipfs/QmRv7RPHRThCPtCnje4nrsCGY6v9otDbYXnexmpNubrUfN\"]},\"project:/contracts/token/ERC721/ERC721Core.sol\":{\"keccak256\":\"0x9e8b158cc5525ad454a540fd6a933a2a1f4d831581a69640f57434b99070e523\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b808dc37f808fc11531401948c84de89172b7a21cf853484e707c81f514b95d0\",\"dweb:/ipfs/QmfVLezwsANYfiTeEgDV1yyvjiJWz7T3AeHUow5hhFP9iV\"]},\"project:/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x0399818d4590e190b188cd09a5cf621479f7a61fa38aab2829f745c8be035a41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76fbc0c96f605010b74b8a4d753fc6bc403399965baff0799a5273cfaeb571e5\",\"dweb:/ipfs/QmPMDrYcHXHJ1B57rULFeHwmibP17gtcEgAjbM9Wn9VzpD\"]}},\"version\":1}",
  "bytecode": "0x60806040526000606e553480156200001657600080fd5b506001606555620000266200002c565b620000ee565b600054610100900460ff1615620000995760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000ec576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61542d80620000fe6000396000f3fe608060405234801561001057600080fd5b50600436106102ef5760003560e01c80636d73e66911610194578063b0fe87c9116100ea578063b0fe87c91461066e578063b4b5b48f14610681578063b88d4fde146106cc578063b9c4d9fb146106df578063bb3bafd6146106ff578063c87b56dd14610720578063ce8aee9d14610733578063d397371914610746578063d5a06d4c146106ff578063e00aab4b14610759578063e92a89f61461076c578063e985e9c51461077f578063f0cdc49914610792578063f2fde38b146107a5578063fe2e1f58146107b8578063ffa1ad74146107cb57600080fd5b80636d73e6691461057d57806370a0823114610590578063715018a6146105a357806372ff03d3146105ab5780637884af44146105be5780637aa15f16146105d157806382dcc0c8146105e457806383b7db63146105f75780638da5cb5b146105ff57806395d89b411461060757806399e0dd7c1461060f578063a22cb46514610622578063aafb2d4414610635578063ac0c8cfa14610648578063ad2d0ddd1461065b57600080fd5b806330176e131161024957806330176e131461045e5780633071a0f91461047157806331ae450b14610484578063332dd1ae1461049957806338e52e78146104ac5780633e6134b8146104bf5780633f0f37f6146104d25780634278330e146104e557806342842e0e146104f857806342966c681461050b5780634cd88b761461051e578063596798ad1461053157806361e5bc6b146105445780636352211e1461055757806366d1e9d01461056a57600080fd5b806301ffc9a7146102f457806302e7afb71461031c57806306fdde0314610331578063081812fc14610346578063095ea7b3146103665780630ebd4c7f14610379578063162094c41461039957806320e4afe2146103ac57806322f374d0146103bf578063239be317146103d057806323b872dd146103e357806324d7806c146103f65780632928ca58146104095780632a55205a1461042a5780632d3456701461044b575b600080fd5b610307610302366004614213565b6107d3565b60405190151581526020015b60405180910390f35b61032f61032a366004614245565b610802565b005b610339610857565b60405161031391906142b2565b6103596103543660046142c5565b6108e9565b60405161031391906142de565b61032f6103743660046142f2565b610910565b61038c6103873660046142c5565b610a25565b6040516103139190614359565b61032f6103a73660046143ad565b610a55565b61032f6103ba36600461443c565b610aa0565b606f546001600160a01b0316610359565b6103596103de3660046142c5565b610b19565b61032f6103f13660046144b5565b610bc7565b610307610404366004614245565b610bf8565b61041c610417366004614245565b610c27565b604051908152602001610313565b61043d6104383660046144f6565b610c61565b604051610313929190614518565b61032f610459366004614245565b610c9f565b61032f61046c366004614531565b610cfc565b61032f61047f366004614572565b610d46565b61048c610d9c565b60405161031391906145ad565b61032f6104a73660046145fa565b610e4a565b61038c6104ba366004614665565b610e9e565b61032f6104cd366004614531565b610fd2565b61032f6104e03660046146ba565b610fe6565b61038c6104f3366004614665565b61103b565b61032f6105063660046144b5565b611134565b61032f6105193660046142c5565b61114f565b61032f61052c3660046147ec565b6111e7565b61032f61053f366004614245565b61130a565b61032f6105523660046145fa565b611353565b6103596105653660046142c5565b6113d2565b61032f610578366004614531565b611407565b61032f61058b366004614245565b611419565b61041c61059e366004614245565b611471565b61032f6114f7565b61041c6105b9366004614245565b61150b565b61041c6105cc366004614572565b611570565b61038c6105df366004614665565b611606565b61032f6105f236600461484f565b611760565b61048c611773565b610359611813565b610339611822565b61032f61061d366004614531565b611831565b61032f6106303660046148a5565b61187b565b61032f6106433660046145fa565b611886565b61032f6106563660046148de565b61193d565b61038c6106693660046148fb565b61194f565b61032f61067c366004614930565b611a70565b6106b461068f3660046142c5565b6000908152606a6020526040902054600160a01b900460101c6001600160501b031690565b6040516001600160501b039091168152602001610313565b61032f6106da36600461496f565b611abd565b6106f26106ed3660046142c5565b611aef565b6040516103139190614a27565b61071261070d3660046142c5565b611b1f565b604051610313929190614a3a565b61033961072e3660046142c5565b611b59565b61032f610741366004614245565b611b89565b61041c610754366004614a7f565b611bd2565b61038c6107673660046148fb565b611c0c565b61032f61077a3660046143ad565b611ceb565b61030761078d366004614ab4565b611cfe565b61032f6107a0366004614ab4565b611d2c565b61032f6107b3366004614245565b611d76565b61041c6107c6366004614572565b611dec565b61041c600381565b60006107de82611e40565b806107ed57506107ed82611e80565b806107fc57506107fc82611ebb565b92915050565b3361080b611813565b6001600160a01b031614806108265750610826606633611ef0565b61084b5760405162461bcd60e51b815260040161084290614ae2565b60405180910390fd5b61085481611f12565b50565b60606068805461086690614b26565b80601f016020809104026020016040519081016040528092919081815260200182805461089290614b26565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b60006108f48261201e565b506000908152606c60205260409020546001600160a01b031690565b600061091b826113d2565b9050806001600160a01b0316836001600160a01b0316036109885760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610842565b336001600160a01b03821614806109a457506109a48133611cfe565b610a165760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610842565b610a208383612043565b505050565b6060610a30826120b1565b610a4c5760405162461bcd60e51b815260040161084290614b5a565b6107fc826120ce565b33610a5e611813565b6001600160a01b03161480610a795750610a79606633611ef0565b610a955760405162461bcd60e51b815260040161084290614ae2565b610a208383836120d9565b33610aa9611813565b6001600160a01b03161480610ac45750610ac4606633611ef0565b610ae05760405162461bcd60e51b815260040161084290614ae2565b610ae9856120b1565b610b055760405162461bcd60e51b815260040161084290614b5a565b610b12858585858561213d565b5050505050565b6000610b24826120b1565b610b405760405162461bcd60e51b815260040161084290614b5a565b610b49826121c4565b90506001600160a01b038116610b9a5760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b6044820152606401610842565b610ba5607282611ef0565b15610bc25760405162461bcd60e51b815260040161084290614b85565b919050565b610bd1338261221a565b610bed5760405162461bcd60e51b815260040161084290614bb4565b610a20838383612279565b6000816001600160a01b0316610c0c611813565b6001600160a01b031614806107fc57506107fc606683611ef0565b6000610c31612406565b610c3961245f565b610c5582604051806020016040528060008152506000806124b5565b9050610bc26001606555565b600080610c6d846120b1565b610c895760405162461bcd60e51b815260040161084290614b5a565b610c93848461253e565b915091505b9250929050565b610ca7612614565b610cb2606682611ef0565b156108545760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a3610cf8606682612673565b5050565b33610d05611813565b6001600160a01b03161480610d205750610d20606633611ef0565b610d3c5760405162461bcd60e51b815260040161084290614ae2565b610cf88282612688565b33610d4f611813565b6001600160a01b03161480610d6a5750610d6a606633611ef0565b610d865760405162461bcd60e51b815260040161084290614ae2565b610d8f836126bd565b610a2083838360006126e5565b6060610da860666127e2565b6001600160401b03811115610dbf57610dbf614721565b604051908082528060200260200182016040528015610de8578160200160208202803683370190505b50905060005b610df860666127e2565b811015610e4657610e0a6066826127ec565b828281518110610e1c57610e1c614c01565b6001600160a01b039092166020928302919091019091015280610e3e81614c2d565b915050610dee565b5090565b33610e53611813565b6001600160a01b03161480610e6e5750610e6e606633611ef0565b610e8a5760405162461bcd60e51b815260040161084290614ae2565b610e986000858585856127f8565b50505050565b6060610ea8612406565b610eb061245f565b816001600160401b03811115610ec857610ec8614721565b604051908082528060200260200182016040528015610ef1578160200160208202803683370190505b5090506000606e546001610f059190614c46565b905083839050606e6000828254610f1c9190614c46565b90915550600090505b83811015610fbf57610f9a86868684818110610f4357610f43614c01565b9050602002810190610f559190614c59565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250610f95915086905087614c46565b6124b5565b838281518110610fac57610fac614c01565b6020908102919091010152600101610f25565b5050610fcb6001606555565b9392505050565b610fda61245f565b610cf8828260006128e5565b33610fef611813565b6001600160a01b0316148061100a575061100a606633611ef0565b6110265760405162461bcd60e51b815260040161084290614ae2565b61102f846126bd565b610e98848484846126e5565b6060611045612406565b61104d61245f565b816001600160401b0381111561106557611065614721565b60405190808252806020026020018201604052801561108e578160200160208202803683370190505b5090506000606e5460016110a29190614c46565b905083839050606e60008282546110b99190614c46565b90915550600090505b83811015610fbf5761110f86604051806020016040528060008152508787858181106110f0576110f0614c01565b90506020020160208101906111059190614c9f565b610f958587614c46565b83828151811061112157611121614c01565b60209081029190910101526001016110c2565b610a2083838360405180602001604052806000815250611abd565b611157612406565b611161338261221a565b6111ad5760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564006044820152606401610842565b60006111b8826113d2565b905060006111c5836121c4565b90506111d083612922565b6111db8284836129ca565b50506108546001606555565b600054610100900460ff16158080156112075750600054600160ff909116105b80611228575061121630612a87565b158015611228575060005460ff166001145b61128b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610842565b6000805460ff1916600117905580156112ae576000805461ff0019166101001790555b6112b88383612a96565b6112c0612ac7565b8015610a20576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b33611313611813565b6001600160a01b0316148061132e575061132e606633611ef0565b61134a5760405162461bcd60e51b815260040161084290614ae2565b61085481612af6565b61135b61245f565b82811461137a5760405162461bcd60e51b815260040161084290614cba565b60005b83811015610b12576113ca85858381811061139a5761139a614c01565b905060200201358484848181106113b3576113b3614c01565b90506020028101906113c59190614c59565b612b4c565b60010161137d565b6000818152606a60205260408120546001600160a01b0316806107fc5760405162461bcd60e51b815260040161084290614ce1565b61140f61245f565b610cf88282612b56565b611421612614565b61142c606682611ef0565b6108545760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a3610cf8606682612b70565b60006001600160a01b0382166114db5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610842565b506001600160a01b03166000908152606b602052604090205490565b6114ff612614565b6115096000612b85565b565b6000611515612406565b3361151e611813565b6001600160a01b031614806115395750611539606633611ef0565b6115555760405162461bcd60e51b815260040161084290614ae2565b610c5582604051806020016040528060008152506000612bd7565b600061157a612406565b33611583611813565b6001600160a01b0316148061159e575061159e606633611ef0565b6115ba5760405162461bcd60e51b815260040161084290614ae2565b6115fa8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612bd7915050565b9050610fcb6001606555565b6060611610612406565b33611619611813565b6001600160a01b031614806116345750611634606633611ef0565b6116505760405162461bcd60e51b815260040161084290614ae2565b816001600160401b0381111561166857611668614721565b604051908082528060200260200182016040528015611691578160200160208202803683370190505b5090506000606e5460016116a59190614c46565b905083839050606e60008282546116bc9190614c46565b90915550600090505b83811015610fbf5761173b868686848181106116e3576116e3614c01565b90506020028101906116f59190614c59565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117369250869150879050614c46565b612bd7565b83828151811061174d5761174d614c01565b60209081029190910101526001016116c5565b61176861245f565b610a208383836128e5565b606061177f60706127e2565b6001600160401b0381111561179657611796614721565b6040519080825280602002602001820160405280156117bf578160200160208202803683370190505b50905060005b6117cf60706127e2565b811015610e46576117e16070826127ec565b8282815181106117f3576117f3614c01565b6001600160a01b03909216602092830291909101909101526001016117c5565b6033546001600160a01b031690565b60606069805461086690614b26565b3361183a611813565b6001600160a01b031614806118555750611855606633611ef0565b6118715760405162461bcd60e51b815260040161084290614ae2565b610cf88282612c2e565b610cf8338383612c63565b3361188f611813565b6001600160a01b031614806118aa57506118aa606633611ef0565b6118c65760405162461bcd60e51b815260040161084290614ae2565b8281146118e55760405162461bcd60e51b815260040161084290614cba565b60005b83811015610b125761193585858381811061190557611905614c01565b9050602002013584848481811061191e5761191e614c01565b90506020028101906119309190614c59565b6120d9565b6001016118e8565b61194561245f565b6108543382612d2d565b6060611959612406565b33611962611813565b6001600160a01b0316148061197d575061197d606633611ef0565b6119995760405162461bcd60e51b815260040161084290614ae2565b8161ffff166001600160401b038111156119b5576119b5614721565b6040519080825280602002602001820160405280156119de578160200160208202803683370190505b5090506000606e5460016119f29190614c46565b90508261ffff16606e6000828254611a0a9190614c46565b90915550600090505b8361ffff16811015611a6457611a3f856040518060200160405280600081525083856117369190614c46565b838281518110611a5157611a51614c01565b6020908102919091010152600101611a13565b50506107fc6001606555565b33611a79611813565b6001600160a01b03161480611a945750611a94606633611ef0565b611ab05760405162461bcd60e51b815260040161084290614ae2565b610b1285858585856127f8565b611ac7338361221a565b611ae35760405162461bcd60e51b815260040161084290614bb4565b610e9884848484612da2565b6060611afa826120b1565b611b165760405162461bcd60e51b815260040161084290614b5a565b6107fc82612dd5565b606080611b2b836120b1565b611b475760405162461bcd60e51b815260040161084290614b5a565b611b5083612ddc565b91509150915091565b6060611b64826120b1565b611b805760405162461bcd60e51b815260040161084290614b5a565b6107fc8261318a565b33611b92611813565b6001600160a01b03161480611bad5750611bad606633611ef0565b611bc95760405162461bcd60e51b815260040161084290614ae2565b61085481613426565b6000611bdc612406565b611be461245f565b611c0083604051806020016040528060008152508460006124b5565b90506107fc6001606555565b6060611c16612406565b611c1e61245f565b8161ffff166001600160401b03811115611c3a57611c3a614721565b604051908082528060200260200182016040528015611c63578160200160208202803683370190505b5090506000606e546001611c779190614c46565b90508261ffff16606e6000828254611c8f9190614c46565b90915550600090505b8361ffff16811015611a6457611cc6856040518060200160405280600081525060008486610f959190614c46565b838281518110611cd857611cd8614c01565b6020908102919091010152600101611c98565b611cf361245f565b610a20838383612b4c565b6001600160a01b039182166000908152606d6020908152604080832093909416825291909152205460ff1690565b33611d35611813565b6001600160a01b03161480611d505750611d50606633611ef0565b611d6c5760405162461bcd60e51b815260040161084290614ae2565b610cf88282613467565b611d7e612614565b6001600160a01b038116611de35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610842565b61085481612b85565b6000611df6612406565b611dfe61245f565b6115fa8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508291506124b59050565b60006001600160e01b0319821663b5d2729f60e01b1480611e7157506001600160e01b03198216639088c20760e01b145b806107fc57506107fc8261359c565b60006001600160e01b031982166380ac58cd60e01b14806107ed57506001600160e01b03198216635b5e139f60e01b14806107fc57506107fc825b60006001600160e01b03198216632a9f3abf60e11b14806107fc57506301ffc9a760e01b6001600160e01b03198316146107fc565b6001600160a01b03811660009081526001830160205260408120541515610fcb565b6001600160a01b03811615801590611f3357506001600160a01b0381163014155b611f7b5760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b6044820152606401610842565b611f86607082611ef0565b15611fce5760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3611fcc607082612673565b505b611fd9607282611ef0565b6108545760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a3610cf8607282612b70565b612027816120b1565b6108545760405162461bcd60e51b815260040161084290614ce1565b6000818152606c6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612078826113d2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000908152606a60205260409020546001600160a01b0316151590565b6060610fcb82612ddc565b6000831180156120eb5750606e548311155b8015612108575060006120fd846121c4565b6001600160a01b0316145b6121245760405162461bcd60e51b815260040161084290614d13565b6000838152607760205260409020610e98828483614d95565b6121498484848461364d565b600085815260796020526040812061216091614171565b61217f84848484607960008b81526020019081526020016000206136f2565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee858585856040516121b59493929190614e4e565b60405180910390a25050505050565b6000818152606a6020526040812054600160a01b90046001600160601b0381169061ffff1682036121f85750600092915050565b61ffff166000908152607e60205260409020546001600160a01b031692915050565b600080612226836113d2565b9050806001600160a01b0316846001600160a01b0316148061224d575061224d8185611cfe565b806122715750836001600160a01b0316612266846108e9565b6001600160a01b0316145b949350505050565b6000818152606a60209081526040918290208251808401909352546001600160a01b03808216808552600160a01b9092046001600160601b03169284019290925290851681146123195760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610842565b6001600160a01b03841661237b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610842565b602082015161238c868686846137ad565b612397600085612043565b6001600160a01b038087166000818152606b60209081526040808320805460001901905593891680835284832080546001019055888352606a90915283822080546001600160a01b031916821790559251879392916000805160206153d883398151915291a45b505050505050565b6002606554036124585760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610842565b6002606555565b61246a607033611ef0565b6115095760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b6044820152606401610842565b6000816000036124d857606e600081546124ce90614c2d565b90915550606e5491505b6124e285836137b9565b336000908152607d6020526040902054612515908690849061ffff16601087901b69ffffffffffffffff0000161761384d565b8351156125365760008281526077602052604090206125348582614ecc565b505b509392505050565b60008060008061254d86612ddc565b915091506001825111156125a25760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b6044820152606401610842565b81516000036125b957306000935093505050610c98565b816000815181106125cc576125cc614c01565b602002602001015161271086836000815181106125eb576125eb614c01565b60200260200101516125fd9190614f85565b6126079190614f9c565b9350935050509250929050565b3361261d611813565b6001600160a01b0316146115095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610842565b6000610fcb836001600160a01b038416613868565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a537610a20828483614d95565b6126c8607282611ef0565b156108545760405162461bcd60e51b815260040161084290614b85565b607c5461ffff908116106127315760405162461bcd60e51b8152602060048201526013602482015272546f6f206d616e7920657874656e73696f6e7360681b6044820152606401610842565b6001600160a01b0384166000908152607d602052604081205461ffff1690036127d657607c80546000906127689061ffff16614fbe565b82546101009290920a61ffff818102199093169183160217909155607c80546001600160a01b0387166000818152607d60209081526040808320805495881661ffff199096169590951790945593549094168452607e90925290912080546001600160a01b03191690911790555b610e988484848461395b565b60006107fc825490565b6000610fcb8383613a4c565b6128048484848461364d565b6001600160a01b038516600090815260786020526040812061282591614171565b61285684848484607860008b6001600160a01b03166001600160a01b031681526020019081526020016000206136f2565b6001600160a01b0385166128a6577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b848484846040516128999493929190614e4e565b60405180910390a1610b12565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f858585856040516121b59493929190614e4e565b3360009081526074602052604090206128ff838583614d95565b50336000908152607560205260409020805460ff19169115159190911790555050565b6000818152606a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201839052909290919061297290839086846137ad565b61297d600085612043565b6001600160a01b0382166000818152606b602090815260408083208054600019019055878352606a909152808220829055518692906000805160206153d8833981519152908390a4610e98565b6001600160a01b03811615612a50576129ea816311686e4b60e21b613a76565b15612a50576040516311686e4b60e21b81526001600160a01b038216906345a1b92c90612a1d9086908690600401614518565b600060405180830381600087803b158015612a3757600080fd5b505af1158015612a4b573d6000803e3d6000fd5b505050505b60008281526077602052604090208054612a6990614b26565b159050610a20576000828152607760205260408120610a209161418f565b6001600160a01b03163b151590565b600054610100900460ff16612abd5760405162461bcd60e51b815260040161084290614fdf565b610cf88282613a92565b600054610100900460ff16612aee5760405162461bcd60e51b815260040161084290614fdf565b611509613ad2565b606f80546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f90612b419083906142de565b60405180910390a150565b336120fd846121c4565b336000908152607660205260409020610a20828483614d95565b6000610fcb836001600160a01b038416613b02565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003612bfa57606e60008154612bf090614c2d565b90915550606e5491505b612c068483600061384d565b825115612c27576000828152607760205260409020612c258482614ecc565b505b5092915050565b6000805260766020527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a181958610a20828483614d95565b816001600160a01b0316836001600160a01b031603612cc05760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610842565b6001600160a01b038381166000818152606d6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612d3e826345ffcdad60e01b613a76565b15610cf8576001600160a01b0382166000818152607a6020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b612dad848484612279565b612db984848484613b51565b610e985760405162461bcd60e51b81526004016108429061502a565b6060612c27825b606080600060796000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015612e5e57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612e14565b5050505090508051600003612fab576000612e78856121c4565b90506001600160a01b03811615612fa957612e9a81634e53ee3d60e11b613a76565b15612f2557604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a90612ecd9030908990600401614518565b600060405180830381865afa158015612eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f129190810190615105565b8151919550935015612f25575050915091565b6001600160a01b038116600090815260786020908152604080832080548251818502810185019093528083529193909284015b82821015612fa257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612f58565b5050505091505b505b805160000361304e576000808052607860209081527f081a134e404bb5bca49ef6b8477e647c1205f6d43d6a20bb692a968ac5aa71448054604080518285028101850190915281815293919290919084015b8282101561304757600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612ffd565b5050505090505b8051156131845780516001600160401b0381111561306e5761306e614721565b604051908082528060200260200182016040528015613097578160200160208202803683370190505b50925080516001600160401b038111156130b3576130b3614721565b6040519080825280602002602001820160405280156130dc578160200160208202803683370190505b50915060005b8151811015613182578181815181106130fd576130fd614c01565b60200260200101516000015184828151811061311b5761311b614c01565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061314d5761314d614c01565b60200260200101516020015161ffff1683828151811061316f5761316f614c01565b60209081029190910101526001016130e2565b505b50915091565b606060008211801561319e5750606e548211155b6131ba5760405162461bcd60e51b815260040161084290614d13565b60006131c5836121c4565b90506131d2607282611ef0565b156131ef5760405162461bcd60e51b815260040161084290614b85565b6000838152607760205260409020805461320890614b26565b159050613322576001600160a01b0381166000908152607660205260409020805461323290614b26565b159050613283576001600160a01b03811660009081526076602090815260408083208684526077835292819020905161326c939201615232565b604051602081830303815290604052915050919050565b6000838152607760205260409020805461329c90614b26565b80601f01602080910402602001604051908101604052809291908181526020018280546132c890614b26565b80156133155780601f106132ea57610100808354040283529160200191613315565b820191906000526020600020905b8154815290600101906020018083116132f857829003601f168201915b5050505050915050919050565b6133338163e9dc637560e01b613a76565b156133ab5760405163e9dc637560e01b81526001600160a01b0382169063e9dc6375906133669030908790600401614518565b600060405180830381865afa158015613383573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fcb9190810190615247565b6001600160a01b03811660009081526075602052604090205460ff166133fd576001600160a01b03811660009081526074602052604090206133ec84613c56565b60405160200161326c9291906152b4565b6001600160a01b0381166000908152607460205260409020805461329c90614b26565b50919050565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3610cf8607082612673565b613472607083611ef0565b6134be5760405162461bcd60e51b815260206004820152601e60248201527f43726561746f72436f72653a20496e76616c696420657874656e73696f6e00006044820152606401610842565b6001600160a01b03811615806134e057506134e081631e05385b60e31b613a76565b61351e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610842565b6001600160a01b038281166000908152607b6020526040902054811690821614610cf8576001600160a01b038281166000818152607b602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b60006001600160e01b031982166314d9799760e21b14806135cd57506001600160e01b031982166328f10a2160e01b145b806135dc57506135dc82611e80565b806135f757506001600160e01b03198216635d9dd7eb60e11b145b8061361257506001600160e01b03198216632dde656160e21b145b8061362d57506001600160e01b031982166335681b5360e21b145b806107fc57506001600160e01b0319821663152a902d60e11b1492915050565b82811461366c5760405162461bcd60e51b815260040161084290614cba565b6000805b828110156136a65783838281811061368a5761368a614c01565b905060200201358261369c9190614c46565b9150600101613670565b506127108110610b125760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b6044820152606401610842565b60005b828110156123fe5781604051806040016040528088888581811061371b5761371b614c01565b90506020020160208101906137309190614245565b6001600160a01b0316815260200186868581811061375057613750614c01565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b0390911617919091179055016136f5565b610e9884848484613ce8565b336000908152607b60205260409020546001600160a01b031615610cf857336000818152607b602052604090819020549051631e05385b60e31b815260048101929092526001600160a01b03848116602484015260448301849052169063f029c2d890606401600060405180830381600087803b15801561383957600080fd5b505af11580156123fe573d6000803e3d6000fd5b610a2083838360405180602001604052806000815250613d23565b6000818152600183016020526040812054801561395157600061388c6001836152d9565b85549091506000906138a0906001906152d9565b90508181146139055760008660000182815481106138c0576138c0614c01565b90600052602060002001549050808760000184815481106138e3576138e3614c01565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613916576139166152ec565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107fc565b60009150506107fc565b6001600160a01b03841630148015906139815750613981846001600160a01b0316612a87565b6139b75760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b6044820152606401610842565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b0384166000908152607460205260409020613a10838583614d95565b506001600160a01b0384166000908152607560205260409020805460ff1916821515179055613a40607085612b70565b50610e98846001612d2d565b6000826000018281548110613a6357613a63614c01565b9060005260206000200154905092915050565b6000613a8183613e5f565b8015610fcb5750610fcb8383613e92565b600054610100900460ff16613ab95760405162461bcd60e51b815260040161084290614fdf565b6068613ac58382614ecc565b506069610a208282614ecc565b600054610100900460ff16613af95760405162461bcd60e51b815260040161084290614fdf565b61150933612b85565b6000818152600183016020526040812054613b49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107fc565b5060006107fc565b6000613b65846001600160a01b0316612a87565b15613c4e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613b9c903390899088908890600401615302565b6020604051808303816000875af1925050508015613bd7575060408051601f3d908101601f19168201909252613bd49181019061533f565b60015b613c34573d808015613c05576040519150601f19603f3d011682016040523d82523d6000602084013e613c0a565b606091505b508051600003613c2c5760405162461bcd60e51b81526004016108429061502a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612271565b506001612271565b60606000613c6383613f1b565b60010190506000816001600160401b03811115613c8257613c82614721565b6040519080825280601f01601f191660200182016040528015613cac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613cb657509392505050565b6001600160a01b03841615610e985761ffff81166000908152607e6020526040902054610e98908590859085906001600160a01b0316613ff1565b6001600160a01b038416613d795760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610842565b613d82836120b1565b15613dce5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610842565b613ddb60008585856137ad565b6001600160a01b038085166000818152606b6020908152604080832080546001019055805180820182528481526001600160601b038089168285019081528a8652606a9094528285209151935116600160a01b02929095169190911790935591518592906000805160206153d8833981519152908290a4612db96000858584613b51565b6000613e72826301ffc9a760e01b613e92565b80156107fc5750613e8b826001600160e01b0319613e92565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015613f04575060208210155b8015613f105750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613f5a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310613f84576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310613fa257662386f26fc10000830492506010015b6305f5e1008310613fba576305f5e100830492506008015b6127108310613fce57612710830492506004015b60648310613fe0576064830492506002015b600a83106107fc5760010192915050565b6001600160a01b03841615610e98576001600160a01b0381161580159061403057506001600160a01b0381166000908152607a602052604090205460ff165b156140cb57604051632f3537c560e11b81526001600160a01b03821690635e6a6f8a9061406790339088908890889060040161535c565b6020604051808303816000875af1158015614086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140aa9190615386565b6140c65760405162461bcd60e51b8152600401610842906153a3565b610e98565b606f546001600160a01b031615610e9857606f54604051632f3537c560e11b81526001600160a01b0390911690635e6a6f8a9061411290339088908890889060040161535c565b6020604051808303816000875af1158015614131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141559190615386565b610e985760405162461bcd60e51b8152600401610842906153a3565b508054600082559060005260206000209081019061085491906141c9565b50805461419b90614b26565b6000825580601f106141ab575050565b601f01602090049060005260206000209081019061085491906141e8565b5b80821115610e465780546001600160b01b03191681556001016141ca565b5b80821115610e4657600081556001016141e9565b6001600160e01b03198116811461085457600080fd5b60006020828403121561422557600080fd5b8135610fcb816141fd565b6001600160a01b038116811461085457600080fd5b60006020828403121561425757600080fd5b8135610fcb81614230565b60005b8381101561427d578181015183820152602001614265565b50506000910152565b6000815180845261429e816020860160208601614262565b601f01601f19169290920160200192915050565b602081526000610fcb6020830184614286565b6000602082840312156142d757600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561430557600080fd5b823561431081614230565b946020939093013593505050565b600081518084526020808501945080840160005b8381101561434e57815187529582019590820190600101614332565b509495945050505050565b602081526000610fcb602083018461431e565b60008083601f84011261437e57600080fd5b5081356001600160401b0381111561439557600080fd5b602083019150836020828501011115610c9857600080fd5b6000806000604084860312156143c257600080fd5b8335925060208401356001600160401b038111156143df57600080fd5b6143eb8682870161436c565b9497909650939450505050565b60008083601f84011261440a57600080fd5b5081356001600160401b0381111561442157600080fd5b6020830191508360208260051b8501011115610c9857600080fd5b60008060008060006060868803121561445457600080fd5b8535945060208601356001600160401b038082111561447257600080fd5b61447e89838a016143f8565b9096509450604088013591508082111561449757600080fd5b506144a4888289016143f8565b969995985093965092949392505050565b6000806000606084860312156144ca57600080fd5b83356144d581614230565b925060208401356144e581614230565b929592945050506040919091013590565b6000806040838503121561450957600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561454457600080fd5b82356001600160401b0381111561455a57600080fd5b6145668582860161436c565b90969095509350505050565b60008060006040848603121561458757600080fd5b833561459281614230565b925060208401356001600160401b038111156143df57600080fd5b6020808252825182820181905260009190848201906040850190845b818110156145ee5783516001600160a01b0316835292840192918401916001016145c9565b50909695505050505050565b6000806000806040858703121561461057600080fd5b84356001600160401b038082111561462757600080fd5b614633888389016143f8565b9096509450602087013591508082111561464c57600080fd5b50614659878288016143f8565b95989497509550505050565b60008060006040848603121561467a57600080fd5b833561468581614230565b925060208401356001600160401b038111156146a057600080fd5b6143eb868287016143f8565b801515811461085457600080fd5b600080600080606085870312156146d057600080fd5b84356146db81614230565b935060208501356001600160401b038111156146f657600080fd5b6147028782880161436c565b9094509250506040850135614716816146ac565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561475f5761475f614721565b604052919050565b60006001600160401b0382111561478057614780614721565b50601f01601f191660200190565b60006147a161479c84614767565b614737565b90508281528383830111156147b557600080fd5b828260208301376000602084830101529392505050565b600082601f8301126147dd57600080fd5b610fcb8383356020850161478e565b600080604083850312156147ff57600080fd5b82356001600160401b038082111561481657600080fd5b614822868387016147cc565b9350602085013591508082111561483857600080fd5b50614845858286016147cc565b9150509250929050565b60008060006040848603121561486457600080fd5b83356001600160401b0381111561487a57600080fd5b6148868682870161436c565b909450925050602084013561489a816146ac565b809150509250925092565b600080604083850312156148b857600080fd5b82356148c381614230565b915060208301356148d3816146ac565b809150509250929050565b6000602082840312156148f057600080fd5b8135610fcb816146ac565b6000806040838503121561490e57600080fd5b823561491981614230565b9150602083013561ffff811681146148d357600080fd5b60008060008060006060868803121561494857600080fd5b853561495381614230565b945060208601356001600160401b038082111561447257600080fd5b6000806000806080858703121561498557600080fd5b843561499081614230565b935060208501356149a081614230565b92506040850135915060608501356001600160401b038111156149c257600080fd5b8501601f810187136149d357600080fd5b6149e28782356020840161478e565b91505092959194509250565b600081518084526020808501945080840160005b8381101561434e5781516001600160a01b031687529582019590820190600101614a02565b602081526000610fcb60208301846149ee565b604081526000614a4d60408301856149ee565b8281036020840152614a5f818561431e565b95945050505050565b80356001600160501b0381168114610bc257600080fd5b60008060408385031215614a9257600080fd5b8235614a9d81614230565b9150614aab60208401614a68565b90509250929050565b60008060408385031215614ac757600080fd5b8235614ad281614230565b915060208301356148d381614230565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c90821680614b3a57607f821691505b60208210810361342057634e487b7160e01b600052602260045260246000fd5b6020808252601190820152702737b732bc34b9ba32b73a103a37b5b2b760791b604082015260600190565b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614c3f57614c3f614c17565b5060010190565b808201808211156107fc576107fc614c17565b6000808335601e19843603018112614c7057600080fd5b8301803591506001600160401b03821115614c8a57600080fd5b602001915036819003821315610c9857600080fd5b600060208284031215614cb157600080fd5b610fcb82614a68565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b601f821115610a2057600081815260208120601f850160051c81016020861015614d615750805b601f850160051c820191505b818110156123fe57828155600101614d6d565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614dac57614dac614721565b614dc083614dba8354614b26565b83614d3a565b6000601f841160018114614dee5760008515614ddc5750838201355b614de68682614d80565b845550610b12565b600083815260209020601f19861690835b82811015614e1f5786850135825560209485019460019092019101614dff565b5086821015614e3c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040808252810184905260008560608301825b87811015614e91578235614e7481614230565b6001600160a01b0316825260209283019290910190600101614e61565b5083810360208501528481526001600160fb1b03851115614eb157600080fd5b8460051b915081866020830137016020019695505050505050565b81516001600160401b03811115614ee557614ee5614721565b614ef981614ef38454614b26565b84614d3a565b602080601f831160018114614f285760008415614f165750858301515b614f208582614d80565b8655506123fe565b600085815260208120601f198616915b82811015614f5757888601518255948401946001909101908401614f38565b5085821015614f755787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176107fc576107fc614c17565b600082614fb957634e487b7160e01b600052601260045260246000fd5b500490565b600061ffff808316818103614fd557614fd5614c17565b6001019392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001600160401b0382111561509557615095614721565b5060051b60200190565b600082601f8301126150b057600080fd5b815160206150c061479c8361507c565b82815260059290921b840181019181810190868411156150df57600080fd5b8286015b848110156150fa57805183529183019183016150e3565b509695505050505050565b6000806040838503121561511857600080fd5b82516001600160401b038082111561512f57600080fd5b818501915085601f83011261514357600080fd5b8151602061515361479c8361507c565b82815260059290921b8401810191818101908984111561517257600080fd5b948201945b8386101561519957855161518a81614230565b82529482019490820190615177565b918801519196509093505050808211156151b257600080fd5b506148458582860161509f565b600081546151cc81614b26565b600182811680156151e457600181146151f957615228565b60ff1984168752821515830287019450615228565b8560005260208060002060005b8581101561521f5781548a820152908401908201615206565b50505082870194505b5050505092915050565b600061227161524183866151bf565b846151bf565b60006020828403121561525957600080fd5b81516001600160401b0381111561526f57600080fd5b8201601f8101841361528057600080fd5b805161528e61479c82614767565b8181528560208385010111156152a357600080fd5b614a5f826020830160208601614262565b60006152c082856151bf565b83516152d0818360208801614262565b01949350505050565b818103818111156107fc576107fc614c17565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061533590830184614286565b9695505050505050565b60006020828403121561535157600080fd5b8151610fcb816141fd565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60006020828403121561539857600080fd5b8151610fcb816146ac565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b60408201526060019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208ee8151a1fddee5f589f9e8bac2b6814fd0ff8222f5f7f7e1bf68892be66e61564736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102ef5760003560e01c80636d73e66911610194578063b0fe87c9116100ea578063b0fe87c91461066e578063b4b5b48f14610681578063b88d4fde146106cc578063b9c4d9fb146106df578063bb3bafd6146106ff578063c87b56dd14610720578063ce8aee9d14610733578063d397371914610746578063d5a06d4c146106ff578063e00aab4b14610759578063e92a89f61461076c578063e985e9c51461077f578063f0cdc49914610792578063f2fde38b146107a5578063fe2e1f58146107b8578063ffa1ad74146107cb57600080fd5b80636d73e6691461057d57806370a0823114610590578063715018a6146105a357806372ff03d3146105ab5780637884af44146105be5780637aa15f16146105d157806382dcc0c8146105e457806383b7db63146105f75780638da5cb5b146105ff57806395d89b411461060757806399e0dd7c1461060f578063a22cb46514610622578063aafb2d4414610635578063ac0c8cfa14610648578063ad2d0ddd1461065b57600080fd5b806330176e131161024957806330176e131461045e5780633071a0f91461047157806331ae450b14610484578063332dd1ae1461049957806338e52e78146104ac5780633e6134b8146104bf5780633f0f37f6146104d25780634278330e146104e557806342842e0e146104f857806342966c681461050b5780634cd88b761461051e578063596798ad1461053157806361e5bc6b146105445780636352211e1461055757806366d1e9d01461056a57600080fd5b806301ffc9a7146102f457806302e7afb71461031c57806306fdde0314610331578063081812fc14610346578063095ea7b3146103665780630ebd4c7f14610379578063162094c41461039957806320e4afe2146103ac57806322f374d0146103bf578063239be317146103d057806323b872dd146103e357806324d7806c146103f65780632928ca58146104095780632a55205a1461042a5780632d3456701461044b575b600080fd5b610307610302366004614213565b6107d3565b60405190151581526020015b60405180910390f35b61032f61032a366004614245565b610802565b005b610339610857565b60405161031391906142b2565b6103596103543660046142c5565b6108e9565b60405161031391906142de565b61032f6103743660046142f2565b610910565b61038c6103873660046142c5565b610a25565b6040516103139190614359565b61032f6103a73660046143ad565b610a55565b61032f6103ba36600461443c565b610aa0565b606f546001600160a01b0316610359565b6103596103de3660046142c5565b610b19565b61032f6103f13660046144b5565b610bc7565b610307610404366004614245565b610bf8565b61041c610417366004614245565b610c27565b604051908152602001610313565b61043d6104383660046144f6565b610c61565b604051610313929190614518565b61032f610459366004614245565b610c9f565b61032f61046c366004614531565b610cfc565b61032f61047f366004614572565b610d46565b61048c610d9c565b60405161031391906145ad565b61032f6104a73660046145fa565b610e4a565b61038c6104ba366004614665565b610e9e565b61032f6104cd366004614531565b610fd2565b61032f6104e03660046146ba565b610fe6565b61038c6104f3366004614665565b61103b565b61032f6105063660046144b5565b611134565b61032f6105193660046142c5565b61114f565b61032f61052c3660046147ec565b6111e7565b61032f61053f366004614245565b61130a565b61032f6105523660046145fa565b611353565b6103596105653660046142c5565b6113d2565b61032f610578366004614531565b611407565b61032f61058b366004614245565b611419565b61041c61059e366004614245565b611471565b61032f6114f7565b61041c6105b9366004614245565b61150b565b61041c6105cc366004614572565b611570565b61038c6105df366004614665565b611606565b61032f6105f236600461484f565b611760565b61048c611773565b610359611813565b610339611822565b61032f61061d366004614531565b611831565b61032f6106303660046148a5565b61187b565b61032f6106433660046145fa565b611886565b61032f6106563660046148de565b61193d565b61038c6106693660046148fb565b61194f565b61032f61067c366004614930565b611a70565b6106b461068f3660046142c5565b6000908152606a6020526040902054600160a01b900460101c6001600160501b031690565b6040516001600160501b039091168152602001610313565b61032f6106da36600461496f565b611abd565b6106f26106ed3660046142c5565b611aef565b6040516103139190614a27565b61071261070d3660046142c5565b611b1f565b604051610313929190614a3a565b61033961072e3660046142c5565b611b59565b61032f610741366004614245565b611b89565b61041c610754366004614a7f565b611bd2565b61038c6107673660046148fb565b611c0c565b61032f61077a3660046143ad565b611ceb565b61030761078d366004614ab4565b611cfe565b61032f6107a0366004614ab4565b611d2c565b61032f6107b3366004614245565b611d76565b61041c6107c6366004614572565b611dec565b61041c600381565b60006107de82611e40565b806107ed57506107ed82611e80565b806107fc57506107fc82611ebb565b92915050565b3361080b611813565b6001600160a01b031614806108265750610826606633611ef0565b61084b5760405162461bcd60e51b815260040161084290614ae2565b60405180910390fd5b61085481611f12565b50565b60606068805461086690614b26565b80601f016020809104026020016040519081016040528092919081815260200182805461089290614b26565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b60006108f48261201e565b506000908152606c60205260409020546001600160a01b031690565b600061091b826113d2565b9050806001600160a01b0316836001600160a01b0316036109885760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610842565b336001600160a01b03821614806109a457506109a48133611cfe565b610a165760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610842565b610a208383612043565b505050565b6060610a30826120b1565b610a4c5760405162461bcd60e51b815260040161084290614b5a565b6107fc826120ce565b33610a5e611813565b6001600160a01b03161480610a795750610a79606633611ef0565b610a955760405162461bcd60e51b815260040161084290614ae2565b610a208383836120d9565b33610aa9611813565b6001600160a01b03161480610ac45750610ac4606633611ef0565b610ae05760405162461bcd60e51b815260040161084290614ae2565b610ae9856120b1565b610b055760405162461bcd60e51b815260040161084290614b5a565b610b12858585858561213d565b5050505050565b6000610b24826120b1565b610b405760405162461bcd60e51b815260040161084290614b5a565b610b49826121c4565b90506001600160a01b038116610b9a5760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b6044820152606401610842565b610ba5607282611ef0565b15610bc25760405162461bcd60e51b815260040161084290614b85565b919050565b610bd1338261221a565b610bed5760405162461bcd60e51b815260040161084290614bb4565b610a20838383612279565b6000816001600160a01b0316610c0c611813565b6001600160a01b031614806107fc57506107fc606683611ef0565b6000610c31612406565b610c3961245f565b610c5582604051806020016040528060008152506000806124b5565b9050610bc26001606555565b600080610c6d846120b1565b610c895760405162461bcd60e51b815260040161084290614b5a565b610c93848461253e565b915091505b9250929050565b610ca7612614565b610cb2606682611ef0565b156108545760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a3610cf8606682612673565b5050565b33610d05611813565b6001600160a01b03161480610d205750610d20606633611ef0565b610d3c5760405162461bcd60e51b815260040161084290614ae2565b610cf88282612688565b33610d4f611813565b6001600160a01b03161480610d6a5750610d6a606633611ef0565b610d865760405162461bcd60e51b815260040161084290614ae2565b610d8f836126bd565b610a2083838360006126e5565b6060610da860666127e2565b6001600160401b03811115610dbf57610dbf614721565b604051908082528060200260200182016040528015610de8578160200160208202803683370190505b50905060005b610df860666127e2565b811015610e4657610e0a6066826127ec565b828281518110610e1c57610e1c614c01565b6001600160a01b039092166020928302919091019091015280610e3e81614c2d565b915050610dee565b5090565b33610e53611813565b6001600160a01b03161480610e6e5750610e6e606633611ef0565b610e8a5760405162461bcd60e51b815260040161084290614ae2565b610e986000858585856127f8565b50505050565b6060610ea8612406565b610eb061245f565b816001600160401b03811115610ec857610ec8614721565b604051908082528060200260200182016040528015610ef1578160200160208202803683370190505b5090506000606e546001610f059190614c46565b905083839050606e6000828254610f1c9190614c46565b90915550600090505b83811015610fbf57610f9a86868684818110610f4357610f43614c01565b9050602002810190610f559190614c59565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250610f95915086905087614c46565b6124b5565b838281518110610fac57610fac614c01565b6020908102919091010152600101610f25565b5050610fcb6001606555565b9392505050565b610fda61245f565b610cf8828260006128e5565b33610fef611813565b6001600160a01b0316148061100a575061100a606633611ef0565b6110265760405162461bcd60e51b815260040161084290614ae2565b61102f846126bd565b610e98848484846126e5565b6060611045612406565b61104d61245f565b816001600160401b0381111561106557611065614721565b60405190808252806020026020018201604052801561108e578160200160208202803683370190505b5090506000606e5460016110a29190614c46565b905083839050606e60008282546110b99190614c46565b90915550600090505b83811015610fbf5761110f86604051806020016040528060008152508787858181106110f0576110f0614c01565b90506020020160208101906111059190614c9f565b610f958587614c46565b83828151811061112157611121614c01565b60209081029190910101526001016110c2565b610a2083838360405180602001604052806000815250611abd565b611157612406565b611161338261221a565b6111ad5760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564006044820152606401610842565b60006111b8826113d2565b905060006111c5836121c4565b90506111d083612922565b6111db8284836129ca565b50506108546001606555565b600054610100900460ff16158080156112075750600054600160ff909116105b80611228575061121630612a87565b158015611228575060005460ff166001145b61128b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610842565b6000805460ff1916600117905580156112ae576000805461ff0019166101001790555b6112b88383612a96565b6112c0612ac7565b8015610a20576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b33611313611813565b6001600160a01b0316148061132e575061132e606633611ef0565b61134a5760405162461bcd60e51b815260040161084290614ae2565b61085481612af6565b61135b61245f565b82811461137a5760405162461bcd60e51b815260040161084290614cba565b60005b83811015610b12576113ca85858381811061139a5761139a614c01565b905060200201358484848181106113b3576113b3614c01565b90506020028101906113c59190614c59565b612b4c565b60010161137d565b6000818152606a60205260408120546001600160a01b0316806107fc5760405162461bcd60e51b815260040161084290614ce1565b61140f61245f565b610cf88282612b56565b611421612614565b61142c606682611ef0565b6108545760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a3610cf8606682612b70565b60006001600160a01b0382166114db5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610842565b506001600160a01b03166000908152606b602052604090205490565b6114ff612614565b6115096000612b85565b565b6000611515612406565b3361151e611813565b6001600160a01b031614806115395750611539606633611ef0565b6115555760405162461bcd60e51b815260040161084290614ae2565b610c5582604051806020016040528060008152506000612bd7565b600061157a612406565b33611583611813565b6001600160a01b0316148061159e575061159e606633611ef0565b6115ba5760405162461bcd60e51b815260040161084290614ae2565b6115fa8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612bd7915050565b9050610fcb6001606555565b6060611610612406565b33611619611813565b6001600160a01b031614806116345750611634606633611ef0565b6116505760405162461bcd60e51b815260040161084290614ae2565b816001600160401b0381111561166857611668614721565b604051908082528060200260200182016040528015611691578160200160208202803683370190505b5090506000606e5460016116a59190614c46565b905083839050606e60008282546116bc9190614c46565b90915550600090505b83811015610fbf5761173b868686848181106116e3576116e3614c01565b90506020028101906116f59190614c59565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117369250869150879050614c46565b612bd7565b83828151811061174d5761174d614c01565b60209081029190910101526001016116c5565b61176861245f565b610a208383836128e5565b606061177f60706127e2565b6001600160401b0381111561179657611796614721565b6040519080825280602002602001820160405280156117bf578160200160208202803683370190505b50905060005b6117cf60706127e2565b811015610e46576117e16070826127ec565b8282815181106117f3576117f3614c01565b6001600160a01b03909216602092830291909101909101526001016117c5565b6033546001600160a01b031690565b60606069805461086690614b26565b3361183a611813565b6001600160a01b031614806118555750611855606633611ef0565b6118715760405162461bcd60e51b815260040161084290614ae2565b610cf88282612c2e565b610cf8338383612c63565b3361188f611813565b6001600160a01b031614806118aa57506118aa606633611ef0565b6118c65760405162461bcd60e51b815260040161084290614ae2565b8281146118e55760405162461bcd60e51b815260040161084290614cba565b60005b83811015610b125761193585858381811061190557611905614c01565b9050602002013584848481811061191e5761191e614c01565b90506020028101906119309190614c59565b6120d9565b6001016118e8565b61194561245f565b6108543382612d2d565b6060611959612406565b33611962611813565b6001600160a01b0316148061197d575061197d606633611ef0565b6119995760405162461bcd60e51b815260040161084290614ae2565b8161ffff166001600160401b038111156119b5576119b5614721565b6040519080825280602002602001820160405280156119de578160200160208202803683370190505b5090506000606e5460016119f29190614c46565b90508261ffff16606e6000828254611a0a9190614c46565b90915550600090505b8361ffff16811015611a6457611a3f856040518060200160405280600081525083856117369190614c46565b838281518110611a5157611a51614c01565b6020908102919091010152600101611a13565b50506107fc6001606555565b33611a79611813565b6001600160a01b03161480611a945750611a94606633611ef0565b611ab05760405162461bcd60e51b815260040161084290614ae2565b610b1285858585856127f8565b611ac7338361221a565b611ae35760405162461bcd60e51b815260040161084290614bb4565b610e9884848484612da2565b6060611afa826120b1565b611b165760405162461bcd60e51b815260040161084290614b5a565b6107fc82612dd5565b606080611b2b836120b1565b611b475760405162461bcd60e51b815260040161084290614b5a565b611b5083612ddc565b91509150915091565b6060611b64826120b1565b611b805760405162461bcd60e51b815260040161084290614b5a565b6107fc8261318a565b33611b92611813565b6001600160a01b03161480611bad5750611bad606633611ef0565b611bc95760405162461bcd60e51b815260040161084290614ae2565b61085481613426565b6000611bdc612406565b611be461245f565b611c0083604051806020016040528060008152508460006124b5565b90506107fc6001606555565b6060611c16612406565b611c1e61245f565b8161ffff166001600160401b03811115611c3a57611c3a614721565b604051908082528060200260200182016040528015611c63578160200160208202803683370190505b5090506000606e546001611c779190614c46565b90508261ffff16606e6000828254611c8f9190614c46565b90915550600090505b8361ffff16811015611a6457611cc6856040518060200160405280600081525060008486610f959190614c46565b838281518110611cd857611cd8614c01565b6020908102919091010152600101611c98565b611cf361245f565b610a20838383612b4c565b6001600160a01b039182166000908152606d6020908152604080832093909416825291909152205460ff1690565b33611d35611813565b6001600160a01b03161480611d505750611d50606633611ef0565b611d6c5760405162461bcd60e51b815260040161084290614ae2565b610cf88282613467565b611d7e612614565b6001600160a01b038116611de35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610842565b61085481612b85565b6000611df6612406565b611dfe61245f565b6115fa8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508291506124b59050565b60006001600160e01b0319821663b5d2729f60e01b1480611e7157506001600160e01b03198216639088c20760e01b145b806107fc57506107fc8261359c565b60006001600160e01b031982166380ac58cd60e01b14806107ed57506001600160e01b03198216635b5e139f60e01b14806107fc57506107fc825b60006001600160e01b03198216632a9f3abf60e11b14806107fc57506301ffc9a760e01b6001600160e01b03198316146107fc565b6001600160a01b03811660009081526001830160205260408120541515610fcb565b6001600160a01b03811615801590611f3357506001600160a01b0381163014155b611f7b5760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b6044820152606401610842565b611f86607082611ef0565b15611fce5760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3611fcc607082612673565b505b611fd9607282611ef0565b6108545760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a3610cf8607282612b70565b612027816120b1565b6108545760405162461bcd60e51b815260040161084290614ce1565b6000818152606c6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612078826113d2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000908152606a60205260409020546001600160a01b0316151590565b6060610fcb82612ddc565b6000831180156120eb5750606e548311155b8015612108575060006120fd846121c4565b6001600160a01b0316145b6121245760405162461bcd60e51b815260040161084290614d13565b6000838152607760205260409020610e98828483614d95565b6121498484848461364d565b600085815260796020526040812061216091614171565b61217f84848484607960008b81526020019081526020016000206136f2565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee858585856040516121b59493929190614e4e565b60405180910390a25050505050565b6000818152606a6020526040812054600160a01b90046001600160601b0381169061ffff1682036121f85750600092915050565b61ffff166000908152607e60205260409020546001600160a01b031692915050565b600080612226836113d2565b9050806001600160a01b0316846001600160a01b0316148061224d575061224d8185611cfe565b806122715750836001600160a01b0316612266846108e9565b6001600160a01b0316145b949350505050565b6000818152606a60209081526040918290208251808401909352546001600160a01b03808216808552600160a01b9092046001600160601b03169284019290925290851681146123195760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610842565b6001600160a01b03841661237b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610842565b602082015161238c868686846137ad565b612397600085612043565b6001600160a01b038087166000818152606b60209081526040808320805460001901905593891680835284832080546001019055888352606a90915283822080546001600160a01b031916821790559251879392916000805160206153d883398151915291a45b505050505050565b6002606554036124585760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610842565b6002606555565b61246a607033611ef0565b6115095760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b6044820152606401610842565b6000816000036124d857606e600081546124ce90614c2d565b90915550606e5491505b6124e285836137b9565b336000908152607d6020526040902054612515908690849061ffff16601087901b69ffffffffffffffff0000161761384d565b8351156125365760008281526077602052604090206125348582614ecc565b505b509392505050565b60008060008061254d86612ddc565b915091506001825111156125a25760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b6044820152606401610842565b81516000036125b957306000935093505050610c98565b816000815181106125cc576125cc614c01565b602002602001015161271086836000815181106125eb576125eb614c01565b60200260200101516125fd9190614f85565b6126079190614f9c565b9350935050509250929050565b3361261d611813565b6001600160a01b0316146115095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610842565b6000610fcb836001600160a01b038416613868565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a537610a20828483614d95565b6126c8607282611ef0565b156108545760405162461bcd60e51b815260040161084290614b85565b607c5461ffff908116106127315760405162461bcd60e51b8152602060048201526013602482015272546f6f206d616e7920657874656e73696f6e7360681b6044820152606401610842565b6001600160a01b0384166000908152607d602052604081205461ffff1690036127d657607c80546000906127689061ffff16614fbe565b82546101009290920a61ffff818102199093169183160217909155607c80546001600160a01b0387166000818152607d60209081526040808320805495881661ffff199096169590951790945593549094168452607e90925290912080546001600160a01b03191690911790555b610e988484848461395b565b60006107fc825490565b6000610fcb8383613a4c565b6128048484848461364d565b6001600160a01b038516600090815260786020526040812061282591614171565b61285684848484607860008b6001600160a01b03166001600160a01b031681526020019081526020016000206136f2565b6001600160a01b0385166128a6577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b848484846040516128999493929190614e4e565b60405180910390a1610b12565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f858585856040516121b59493929190614e4e565b3360009081526074602052604090206128ff838583614d95565b50336000908152607560205260409020805460ff19169115159190911790555050565b6000818152606a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201839052909290919061297290839086846137ad565b61297d600085612043565b6001600160a01b0382166000818152606b602090815260408083208054600019019055878352606a909152808220829055518692906000805160206153d8833981519152908390a4610e98565b6001600160a01b03811615612a50576129ea816311686e4b60e21b613a76565b15612a50576040516311686e4b60e21b81526001600160a01b038216906345a1b92c90612a1d9086908690600401614518565b600060405180830381600087803b158015612a3757600080fd5b505af1158015612a4b573d6000803e3d6000fd5b505050505b60008281526077602052604090208054612a6990614b26565b159050610a20576000828152607760205260408120610a209161418f565b6001600160a01b03163b151590565b600054610100900460ff16612abd5760405162461bcd60e51b815260040161084290614fdf565b610cf88282613a92565b600054610100900460ff16612aee5760405162461bcd60e51b815260040161084290614fdf565b611509613ad2565b606f80546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f90612b419083906142de565b60405180910390a150565b336120fd846121c4565b336000908152607660205260409020610a20828483614d95565b6000610fcb836001600160a01b038416613b02565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003612bfa57606e60008154612bf090614c2d565b90915550606e5491505b612c068483600061384d565b825115612c27576000828152607760205260409020612c258482614ecc565b505b5092915050565b6000805260766020527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a181958610a20828483614d95565b816001600160a01b0316836001600160a01b031603612cc05760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610842565b6001600160a01b038381166000818152606d6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612d3e826345ffcdad60e01b613a76565b15610cf8576001600160a01b0382166000818152607a6020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b612dad848484612279565b612db984848484613b51565b610e985760405162461bcd60e51b81526004016108429061502a565b6060612c27825b606080600060796000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015612e5e57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612e14565b5050505090508051600003612fab576000612e78856121c4565b90506001600160a01b03811615612fa957612e9a81634e53ee3d60e11b613a76565b15612f2557604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a90612ecd9030908990600401614518565b600060405180830381865afa158015612eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f129190810190615105565b8151919550935015612f25575050915091565b6001600160a01b038116600090815260786020908152604080832080548251818502810185019093528083529193909284015b82821015612fa257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612f58565b5050505091505b505b805160000361304e576000808052607860209081527f081a134e404bb5bca49ef6b8477e647c1205f6d43d6a20bb692a968ac5aa71448054604080518285028101850190915281815293919290919084015b8282101561304757600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612ffd565b5050505090505b8051156131845780516001600160401b0381111561306e5761306e614721565b604051908082528060200260200182016040528015613097578160200160208202803683370190505b50925080516001600160401b038111156130b3576130b3614721565b6040519080825280602002602001820160405280156130dc578160200160208202803683370190505b50915060005b8151811015613182578181815181106130fd576130fd614c01565b60200260200101516000015184828151811061311b5761311b614c01565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061314d5761314d614c01565b60200260200101516020015161ffff1683828151811061316f5761316f614c01565b60209081029190910101526001016130e2565b505b50915091565b606060008211801561319e5750606e548211155b6131ba5760405162461bcd60e51b815260040161084290614d13565b60006131c5836121c4565b90506131d2607282611ef0565b156131ef5760405162461bcd60e51b815260040161084290614b85565b6000838152607760205260409020805461320890614b26565b159050613322576001600160a01b0381166000908152607660205260409020805461323290614b26565b159050613283576001600160a01b03811660009081526076602090815260408083208684526077835292819020905161326c939201615232565b604051602081830303815290604052915050919050565b6000838152607760205260409020805461329c90614b26565b80601f01602080910402602001604051908101604052809291908181526020018280546132c890614b26565b80156133155780601f106132ea57610100808354040283529160200191613315565b820191906000526020600020905b8154815290600101906020018083116132f857829003601f168201915b5050505050915050919050565b6133338163e9dc637560e01b613a76565b156133ab5760405163e9dc637560e01b81526001600160a01b0382169063e9dc6375906133669030908790600401614518565b600060405180830381865afa158015613383573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fcb9190810190615247565b6001600160a01b03811660009081526075602052604090205460ff166133fd576001600160a01b03811660009081526074602052604090206133ec84613c56565b60405160200161326c9291906152b4565b6001600160a01b0381166000908152607460205260409020805461329c90614b26565b50919050565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3610cf8607082612673565b613472607083611ef0565b6134be5760405162461bcd60e51b815260206004820152601e60248201527f43726561746f72436f72653a20496e76616c696420657874656e73696f6e00006044820152606401610842565b6001600160a01b03811615806134e057506134e081631e05385b60e31b613a76565b61351e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610842565b6001600160a01b038281166000908152607b6020526040902054811690821614610cf8576001600160a01b038281166000818152607b602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b60006001600160e01b031982166314d9799760e21b14806135cd57506001600160e01b031982166328f10a2160e01b145b806135dc57506135dc82611e80565b806135f757506001600160e01b03198216635d9dd7eb60e11b145b8061361257506001600160e01b03198216632dde656160e21b145b8061362d57506001600160e01b031982166335681b5360e21b145b806107fc57506001600160e01b0319821663152a902d60e11b1492915050565b82811461366c5760405162461bcd60e51b815260040161084290614cba565b6000805b828110156136a65783838281811061368a5761368a614c01565b905060200201358261369c9190614c46565b9150600101613670565b506127108110610b125760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b6044820152606401610842565b60005b828110156123fe5781604051806040016040528088888581811061371b5761371b614c01565b90506020020160208101906137309190614245565b6001600160a01b0316815260200186868581811061375057613750614c01565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b0390911617919091179055016136f5565b610e9884848484613ce8565b336000908152607b60205260409020546001600160a01b031615610cf857336000818152607b602052604090819020549051631e05385b60e31b815260048101929092526001600160a01b03848116602484015260448301849052169063f029c2d890606401600060405180830381600087803b15801561383957600080fd5b505af11580156123fe573d6000803e3d6000fd5b610a2083838360405180602001604052806000815250613d23565b6000818152600183016020526040812054801561395157600061388c6001836152d9565b85549091506000906138a0906001906152d9565b90508181146139055760008660000182815481106138c0576138c0614c01565b90600052602060002001549050808760000184815481106138e3576138e3614c01565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613916576139166152ec565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107fc565b60009150506107fc565b6001600160a01b03841630148015906139815750613981846001600160a01b0316612a87565b6139b75760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b6044820152606401610842565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b0384166000908152607460205260409020613a10838583614d95565b506001600160a01b0384166000908152607560205260409020805460ff1916821515179055613a40607085612b70565b50610e98846001612d2d565b6000826000018281548110613a6357613a63614c01565b9060005260206000200154905092915050565b6000613a8183613e5f565b8015610fcb5750610fcb8383613e92565b600054610100900460ff16613ab95760405162461bcd60e51b815260040161084290614fdf565b6068613ac58382614ecc565b506069610a208282614ecc565b600054610100900460ff16613af95760405162461bcd60e51b815260040161084290614fdf565b61150933612b85565b6000818152600183016020526040812054613b49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107fc565b5060006107fc565b6000613b65846001600160a01b0316612a87565b15613c4e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613b9c903390899088908890600401615302565b6020604051808303816000875af1925050508015613bd7575060408051601f3d908101601f19168201909252613bd49181019061533f565b60015b613c34573d808015613c05576040519150601f19603f3d011682016040523d82523d6000602084013e613c0a565b606091505b508051600003613c2c5760405162461bcd60e51b81526004016108429061502a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612271565b506001612271565b60606000613c6383613f1b565b60010190506000816001600160401b03811115613c8257613c82614721565b6040519080825280601f01601f191660200182016040528015613cac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613cb657509392505050565b6001600160a01b03841615610e985761ffff81166000908152607e6020526040902054610e98908590859085906001600160a01b0316613ff1565b6001600160a01b038416613d795760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610842565b613d82836120b1565b15613dce5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610842565b613ddb60008585856137ad565b6001600160a01b038085166000818152606b6020908152604080832080546001019055805180820182528481526001600160601b038089168285019081528a8652606a9094528285209151935116600160a01b02929095169190911790935591518592906000805160206153d8833981519152908290a4612db96000858584613b51565b6000613e72826301ffc9a760e01b613e92565b80156107fc5750613e8b826001600160e01b0319613e92565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015613f04575060208210155b8015613f105750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613f5a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310613f84576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310613fa257662386f26fc10000830492506010015b6305f5e1008310613fba576305f5e100830492506008015b6127108310613fce57612710830492506004015b60648310613fe0576064830492506002015b600a83106107fc5760010192915050565b6001600160a01b03841615610e98576001600160a01b0381161580159061403057506001600160a01b0381166000908152607a602052604090205460ff165b156140cb57604051632f3537c560e11b81526001600160a01b03821690635e6a6f8a9061406790339088908890889060040161535c565b6020604051808303816000875af1158015614086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140aa9190615386565b6140c65760405162461bcd60e51b8152600401610842906153a3565b610e98565b606f546001600160a01b031615610e9857606f54604051632f3537c560e11b81526001600160a01b0390911690635e6a6f8a9061411290339088908890889060040161535c565b6020604051808303816000875af1158015614131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141559190615386565b610e985760405162461bcd60e51b8152600401610842906153a3565b508054600082559060005260206000209081019061085491906141c9565b50805461419b90614b26565b6000825580601f106141ab575050565b601f01602090049060005260206000209081019061085491906141e8565b5b80821115610e465780546001600160b01b03191681556001016141ca565b5b80821115610e4657600081556001016141e9565b6001600160e01b03198116811461085457600080fd5b60006020828403121561422557600080fd5b8135610fcb816141fd565b6001600160a01b038116811461085457600080fd5b60006020828403121561425757600080fd5b8135610fcb81614230565b60005b8381101561427d578181015183820152602001614265565b50506000910152565b6000815180845261429e816020860160208601614262565b601f01601f19169290920160200192915050565b602081526000610fcb6020830184614286565b6000602082840312156142d757600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561430557600080fd5b823561431081614230565b946020939093013593505050565b600081518084526020808501945080840160005b8381101561434e57815187529582019590820190600101614332565b509495945050505050565b602081526000610fcb602083018461431e565b60008083601f84011261437e57600080fd5b5081356001600160401b0381111561439557600080fd5b602083019150836020828501011115610c9857600080fd5b6000806000604084860312156143c257600080fd5b8335925060208401356001600160401b038111156143df57600080fd5b6143eb8682870161436c565b9497909650939450505050565b60008083601f84011261440a57600080fd5b5081356001600160401b0381111561442157600080fd5b6020830191508360208260051b8501011115610c9857600080fd5b60008060008060006060868803121561445457600080fd5b8535945060208601356001600160401b038082111561447257600080fd5b61447e89838a016143f8565b9096509450604088013591508082111561449757600080fd5b506144a4888289016143f8565b969995985093965092949392505050565b6000806000606084860312156144ca57600080fd5b83356144d581614230565b925060208401356144e581614230565b929592945050506040919091013590565b6000806040838503121561450957600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561454457600080fd5b82356001600160401b0381111561455a57600080fd5b6145668582860161436c565b90969095509350505050565b60008060006040848603121561458757600080fd5b833561459281614230565b925060208401356001600160401b038111156143df57600080fd5b6020808252825182820181905260009190848201906040850190845b818110156145ee5783516001600160a01b0316835292840192918401916001016145c9565b50909695505050505050565b6000806000806040858703121561461057600080fd5b84356001600160401b038082111561462757600080fd5b614633888389016143f8565b9096509450602087013591508082111561464c57600080fd5b50614659878288016143f8565b95989497509550505050565b60008060006040848603121561467a57600080fd5b833561468581614230565b925060208401356001600160401b038111156146a057600080fd5b6143eb868287016143f8565b801515811461085457600080fd5b600080600080606085870312156146d057600080fd5b84356146db81614230565b935060208501356001600160401b038111156146f657600080fd5b6147028782880161436c565b9094509250506040850135614716816146ac565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561475f5761475f614721565b604052919050565b60006001600160401b0382111561478057614780614721565b50601f01601f191660200190565b60006147a161479c84614767565b614737565b90508281528383830111156147b557600080fd5b828260208301376000602084830101529392505050565b600082601f8301126147dd57600080fd5b610fcb8383356020850161478e565b600080604083850312156147ff57600080fd5b82356001600160401b038082111561481657600080fd5b614822868387016147cc565b9350602085013591508082111561483857600080fd5b50614845858286016147cc565b9150509250929050565b60008060006040848603121561486457600080fd5b83356001600160401b0381111561487a57600080fd5b6148868682870161436c565b909450925050602084013561489a816146ac565b809150509250925092565b600080604083850312156148b857600080fd5b82356148c381614230565b915060208301356148d3816146ac565b809150509250929050565b6000602082840312156148f057600080fd5b8135610fcb816146ac565b6000806040838503121561490e57600080fd5b823561491981614230565b9150602083013561ffff811681146148d357600080fd5b60008060008060006060868803121561494857600080fd5b853561495381614230565b945060208601356001600160401b038082111561447257600080fd5b6000806000806080858703121561498557600080fd5b843561499081614230565b935060208501356149a081614230565b92506040850135915060608501356001600160401b038111156149c257600080fd5b8501601f810187136149d357600080fd5b6149e28782356020840161478e565b91505092959194509250565b600081518084526020808501945080840160005b8381101561434e5781516001600160a01b031687529582019590820190600101614a02565b602081526000610fcb60208301846149ee565b604081526000614a4d60408301856149ee565b8281036020840152614a5f818561431e565b95945050505050565b80356001600160501b0381168114610bc257600080fd5b60008060408385031215614a9257600080fd5b8235614a9d81614230565b9150614aab60208401614a68565b90509250929050565b60008060408385031215614ac757600080fd5b8235614ad281614230565b915060208301356148d381614230565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c90821680614b3a57607f821691505b60208210810361342057634e487b7160e01b600052602260045260246000fd5b6020808252601190820152702737b732bc34b9ba32b73a103a37b5b2b760791b604082015260600190565b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614c3f57614c3f614c17565b5060010190565b808201808211156107fc576107fc614c17565b6000808335601e19843603018112614c7057600080fd5b8301803591506001600160401b03821115614c8a57600080fd5b602001915036819003821315610c9857600080fd5b600060208284031215614cb157600080fd5b610fcb82614a68565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b601f821115610a2057600081815260208120601f850160051c81016020861015614d615750805b601f850160051c820191505b818110156123fe57828155600101614d6d565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614dac57614dac614721565b614dc083614dba8354614b26565b83614d3a565b6000601f841160018114614dee5760008515614ddc5750838201355b614de68682614d80565b845550610b12565b600083815260209020601f19861690835b82811015614e1f5786850135825560209485019460019092019101614dff565b5086821015614e3c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040808252810184905260008560608301825b87811015614e91578235614e7481614230565b6001600160a01b0316825260209283019290910190600101614e61565b5083810360208501528481526001600160fb1b03851115614eb157600080fd5b8460051b915081866020830137016020019695505050505050565b81516001600160401b03811115614ee557614ee5614721565b614ef981614ef38454614b26565b84614d3a565b602080601f831160018114614f285760008415614f165750858301515b614f208582614d80565b8655506123fe565b600085815260208120601f198616915b82811015614f5757888601518255948401946001909101908401614f38565b5085821015614f755787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176107fc576107fc614c17565b600082614fb957634e487b7160e01b600052601260045260246000fd5b500490565b600061ffff808316818103614fd557614fd5614c17565b6001019392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001600160401b0382111561509557615095614721565b5060051b60200190565b600082601f8301126150b057600080fd5b815160206150c061479c8361507c565b82815260059290921b840181019181810190868411156150df57600080fd5b8286015b848110156150fa57805183529183019183016150e3565b509695505050505050565b6000806040838503121561511857600080fd5b82516001600160401b038082111561512f57600080fd5b818501915085601f83011261514357600080fd5b8151602061515361479c8361507c565b82815260059290921b8401810191818101908984111561517257600080fd5b948201945b8386101561519957855161518a81614230565b82529482019490820190615177565b918801519196509093505050808211156151b257600080fd5b506148458582860161509f565b600081546151cc81614b26565b600182811680156151e457600181146151f957615228565b60ff1984168752821515830287019450615228565b8560005260208060002060005b8581101561521f5781548a820152908401908201615206565b50505082870194505b5050505092915050565b600061227161524183866151bf565b846151bf565b60006020828403121561525957600080fd5b81516001600160401b0381111561526f57600080fd5b8201601f8101841361528057600080fd5b805161528e61479c82614767565b8181528560208385010111156152a357600080fd5b614a5f826020830160208601614262565b60006152c082856151bf565b83516152d0818360208801614262565b01949350505050565b818103818111156107fc576107fc614c17565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061533590830184614286565b9695505050505050565b60006020828403121561535157600080fd5b8151610fcb816141fd565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60006020828403121561539857600080fd5b8151610fcb816146ac565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b60408201526060019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208ee8151a1fddee5f589f9e8bac2b6814fd0ff8222f5f7f7e1bf68892be66e61564736f6c63430008130033",
  "immutableReferences": {},
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:608:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "188:229:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "205:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "216:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "198:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "198:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "198:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "239:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "250:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "235:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "235:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "255:2:81",
                        "type": "",
                        "value": "39"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "228:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "228:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "228:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "278:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "289:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "274:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "274:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "294:34:81",
                        "type": "",
                        "value": "Initializable: contract is initi"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "267:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "267:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "267:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "349:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "360:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "345:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "345:18:81"
                      },
                      {
                        "hexValue": "616c697a696e67",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "365:9:81",
                        "type": "",
                        "value": "alizing"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "338:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "338:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "338:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "384:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "396:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "407:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "392:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "392:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "384:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "165:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "179:4:81",
                "type": ""
              }
            ],
            "src": "14:403:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "519:87:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "529:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "541:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "552:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "537:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "537:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "529:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "571:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "586:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "594:4:81",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "582:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "582:17:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "564:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "564:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "564:36:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "488:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "499:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "510:4:81",
                "type": ""
              }
            ],
            "src": "422:184:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:44762:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "58:87:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "123:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "132:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "135:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "125:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "125:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "125:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "81:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "92:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "103:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "108:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "99:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "99:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "88:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "88:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "78:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "78:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "71:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "71:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "68:71:81"
                }
              ]
            },
            "name": "validator_revert_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "47:5:81",
                "type": ""
              }
            ],
            "src": "14:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "219:176:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "265:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "274:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "277:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "267:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "267:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "267:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "240:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "249:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "236:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "236:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "261:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "232:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "232:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "229:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "290:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "316:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "303:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "303:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "294:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "359:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "335:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "335:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "335:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "374:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "384:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "374:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "185:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "196:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "208:6:81",
                "type": ""
              }
            ],
            "src": "150:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "495:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "505:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "517:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "528:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "513:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "513:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "505:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "547:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "572:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "565:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "565:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "558:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "558:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "540:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "540:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "540:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "464:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "475:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "486:4:81",
                "type": ""
              }
            ],
            "src": "400:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "637:86:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "701:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "710:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "713:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "703:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "703:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "703:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "660:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "671:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "686:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "691:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "682:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "682:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "695:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "678:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "678:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "667:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "667:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "657:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "657:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "650:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "650:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "647:70:81"
                }
              ]
            },
            "name": "validator_revert_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "626:5:81",
                "type": ""
              }
            ],
            "src": "592:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "798:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "844:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "853:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "856:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "846:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "846:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "846:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "819:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "828:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "815:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "815:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "840:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "811:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "811:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "808:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "869:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "895:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "882:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "882:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "873:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "939:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "914:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "914:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "914:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "954:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "964:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "954:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "764:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "775:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "787:6:81",
                "type": ""
              }
            ],
            "src": "728:247:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1046:184:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1056:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1065:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1060:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1125:63:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nodeType": "YulIdentifier",
                                  "src": "1150:3:81"
                                },
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "1155:1:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1146:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1146:11:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "src",
                                      "nodeType": "YulIdentifier",
                                      "src": "1169:3:81"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "1174:1:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "1165:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1165:11:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "1159:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1159:18:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1139:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1139:39:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1139:39:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1086:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1089:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1083:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1083:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1097:19:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1099:15:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1108:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1111:2:81",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1104:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1104:10:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1099:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1079:3:81",
                    "statements": []
                  },
                  "src": "1075:113:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "1208:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1213:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1204:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1204:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1222:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1197:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1197:27:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1197:27:81"
                }
              ]
            },
            "name": "copy_memory_to_memory_with_cleanup",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "1024:3:81",
                "type": ""
              },
              {
                "name": "dst",
                "nodeType": "YulTypedName",
                "src": "1029:3:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1034:6:81",
                "type": ""
              }
            ],
            "src": "980:250:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1285:221:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1295:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1315:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1309:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1309:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1299:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "1337:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1342:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1330:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1330:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1330:19:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "1397:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1404:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1393:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1393:16:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1415:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1420:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1411:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1411:14:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1427:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "1358:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1358:76:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1358:76:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1443:57:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1458:3:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "1471:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1479:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "1467:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1467:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1488:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "1484:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1484:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "1463:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1463:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1454:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1454:39:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1495:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1450:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1450:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "1443:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "1262:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "1269:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1277:3:81",
                "type": ""
              }
            ],
            "src": "1235:271:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1632:99:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1649:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1660:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1642:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1642:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1642:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1672:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1698:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1710:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1721:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1706:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1706:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "1680:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1680:45:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1672:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1601:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1612:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1623:4:81",
                "type": ""
              }
            ],
            "src": "1511:220:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1806:110:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1852:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1861:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1864:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1854:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1854:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1854:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1827:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1836:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1823:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1823:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1848:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1819:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1819:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1816:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1877:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1900:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1887:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1887:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1877:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1772:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1783:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1795:6:81",
                "type": ""
              }
            ],
            "src": "1736:180:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2022:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "2032:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2044:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2055:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2040:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2040:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2032:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2074:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "2089:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2105:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2110:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "2101:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2101:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2114:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "2097:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2097:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "2085:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2085:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2067:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2067:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2067:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1991:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2002:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2013:4:81",
                "type": ""
              }
            ],
            "src": "1921:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2216:228:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2262:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2271:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2274:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2264:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2264:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2264:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2237:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2246:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2233:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2233:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2258:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2229:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2229:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2226:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2287:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2313:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2300:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2300:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "2291:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2357:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "2332:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2332:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2332:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2372:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "2382:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2372:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2396:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2423:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2434:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2419:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2419:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2406:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2406:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "2396:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2174:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2185:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2197:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2205:6:81",
                "type": ""
              }
            ],
            "src": "2129:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2510:374:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2520:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2540:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2534:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2534:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "2524:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2562:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2567:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2555:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2555:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2555:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2583:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2593:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2587:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2606:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2617:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2622:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2613:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2613:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "2606:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2634:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2652:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2659:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2648:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2648:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "2638:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2671:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2680:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "2675:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2739:120:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2760:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "2771:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "2765:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2765:13:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "2753:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2753:26:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2753:26:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2792:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2803:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2808:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2799:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2799:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "2792:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2824:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "2838:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2846:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2834:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2834:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "2824:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "2701:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2704:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "2698:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2698:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "2712:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "2714:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "2723:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2726:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2719:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2719:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "2714:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "2694:3:81",
                    "statements": []
                  },
                  "src": "2690:169:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2868:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "2875:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "2868:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "2487:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "2494:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "2502:3:81",
                "type": ""
              }
            ],
            "src": "2449:435:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3040:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3057:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3068:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3050:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3050:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3050:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3080:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3117:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3129:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3140:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3125:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3125:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "3088:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3088:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3080:4:81"
                    }
                  ]
                }
              ]
            },
            "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": "3009:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3020:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3031:4:81",
                "type": ""
              }
            ],
            "src": "2889:261:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3228:275:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3277:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3286:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3289:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3279:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3279:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3279:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3256:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3264:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3252:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3252:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "3271:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "3248:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3248:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "3241:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3241:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3238:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3302:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3325:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3312:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3312:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "3302:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3375:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3384:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3387:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3377:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3377:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3377:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3347:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3355:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3344:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3344:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3341:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3400:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3416:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3424:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3412:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3412:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "3400:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3481:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3490:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3493:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3483:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3483:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3483:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3452:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "3460:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3448:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3448:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3469:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3444:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3444:30:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "3476:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3441:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3441:39:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3438:59:81"
                }
              ]
            },
            "name": "abi_decode_string_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "3191:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "3199:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "3207:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "3217:6:81",
                "type": ""
              }
            ],
            "src": "3155:348:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3615:372:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3661:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3670:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3673:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3663:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3663:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3663:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3636:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3645:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3632:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3632:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3657:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3628:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3628:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3625:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3686:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3709:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3696:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3696:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3686:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3728:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3759:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3770:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3755:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3755:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3742:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3742:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "3732:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3817:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3826:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3829:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3819:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3819:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3819:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3789:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3797:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3786:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3786:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3783:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3842:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3899:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "3910:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3895:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3895:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3919:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3868:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3868:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "3846:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "3856:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3936:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "3946:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "3936:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3963:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "3973:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "3963:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3565:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3576:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3588:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3596:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "3604:6:81",
                "type": ""
              }
            ],
            "src": "3508:479:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4084:283:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4133:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4142:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4145:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4135:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4135:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4135:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4112:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4120:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4108:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4108:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "4127:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "4104:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4104:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "4097:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4097:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4094:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4158:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4181:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4168:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4168:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "4158:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4231:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4240:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4243:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4233:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4233:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4233:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "4203:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4211:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4200:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4200:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4197:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4256:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4272:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4280:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4268:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4268:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "4256:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4345:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4354:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4357:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4347:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4347:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4347:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4308:6:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "4320:1:81",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "4323:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "4316:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4316:14:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4304:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4304:27:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4333:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4300:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4300:38:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "4340:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4297:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4297:47:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4294:67:81"
                }
              ]
            },
            "name": "abi_decode_array_address_payable_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "4047:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "4055:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "4063:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "4073:6:81",
                "type": ""
              }
            ],
            "src": "3992:375:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4554:683:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4600:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4609:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4612:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4602:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4602:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4602:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4575:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4584:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4571:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4571:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4596:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4567:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4567:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4564:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4625:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4648:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4635:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4635:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "4625:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4667:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4698:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4709:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4694:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4694:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4681:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4681:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "4671:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4722:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4732:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "4726:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4777:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4786:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4789:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4779:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4779:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4779:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4765:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4773:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4762:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4762:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4759:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4802:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4878:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4889:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4874:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4874:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4898:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "4828:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4828:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "4806:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "4816:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4915:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "4925:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "4915:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4942:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "4952:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "4942:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4969:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5002:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5013:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4998:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4998:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4985:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4985:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "4973:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5046:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5055:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5058:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5048:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5048:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5048:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "5032:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5042:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5029:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5029:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5026:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5071:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5147:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "5158:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5143:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5143:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5169:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "5097:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5097:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "5075:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "5085:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5186:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "5196:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "5186:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5213:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "5223:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "5213:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4488:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4499:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4511:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4519:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "4527:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "4535:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "4543:6:81",
                "type": ""
              }
            ],
            "src": "4372:865:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5346:352:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5392:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5401:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5404:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5394:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5394:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5394:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5367:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5376:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5363:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5363:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5388:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5359:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5359:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5356:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5417:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5443:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5430:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5430:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "5421:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "5487:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "5462:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5462:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5462:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5502:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "5512:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5502:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5526:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5558:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5569:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5554:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5554:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5541:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5541:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "5530:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "5607:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "5582:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5582:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5582:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5624:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "5634:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "5624:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5650:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5677:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5688:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5673:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5673:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5660:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5660:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "5650:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5296:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5307:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5319:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5327:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "5335:6:81",
                "type": ""
              }
            ],
            "src": "5242:456:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5804:76:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5814:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5826:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5837:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5822:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5822:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5814:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5856:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "5867:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5849:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5849:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5849:25:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5773:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5784:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5795:4:81",
                "type": ""
              }
            ],
            "src": "5703:177:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5972:161:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6018:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6027:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6030:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6020:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6020:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6020:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5993:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6002:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5989:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5989:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6014:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5985:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5985:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5982:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6043:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6066:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6053:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6053:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "6043:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6085:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6112:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6123:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6108:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6108:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6095:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6095:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "6085:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5930:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5941:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5953:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5961:6:81",
                "type": ""
              }
            ],
            "src": "5885:248:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6267:145:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "6277:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6289:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6300:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6285:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6285:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "6277:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6319:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "6334:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6350:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6355:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "6346:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6346:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6359:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "6342:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6342:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "6330:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6330:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6312:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6312:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6312:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6383:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6394:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6379:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6379:18:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "6399:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6372:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6372:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6372:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6228:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6239:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6247:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "6258:4:81",
                "type": ""
              }
            ],
            "src": "6138:274:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6507:321:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6553:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6562:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6565:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6555:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6555:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6555:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6528:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6537:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "6524:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6524:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6549:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "6520:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6520:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6517:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6578:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6605:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6592:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6592:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "6582:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6658:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6667:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6670:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6660:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6660:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6660:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6630:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6638:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6627:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6627:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6624:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6683:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6740:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "6751:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6736:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6736:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6760:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "6709:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6709:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "6687:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "6697:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6777:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "6787:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "6777:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6804:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "6814:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "6804:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6465:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "6476:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6488:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6496:6:81",
                "type": ""
              }
            ],
            "src": "6417:411:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6940:439:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6986:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6995:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6998:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6988:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6988:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6988:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6961:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6970:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "6957:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6957:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6982:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "6953:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6953:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6950:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7011:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7037:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7024:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7024:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "7015:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "7081:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "7056:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7056:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7056:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7096:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "7106:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "7096:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7120:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7151:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7162:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7147:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7147:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7134:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7134:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "7124:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7209:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7218:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7221:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7211:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7211:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7211:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7181:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7189:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7178:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7178:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7175:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7234:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7291:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "7302:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7287:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7287:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7311:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "7260:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7260:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "7238:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "7248:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7328:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "7338:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "7328:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7355:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "7365:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "7355:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6890:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "6901:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6913:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6921:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "6929:6:81",
                "type": ""
              }
            ],
            "src": "6833:546:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7535:507:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7545:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7555:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7549:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7566:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7584:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7595:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7580:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7580:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "7570:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7614:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7625:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7607:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7607:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7607:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7637:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "7648:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "7641:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7663:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "7683:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "7677:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7677:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "7667:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "7706:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7714:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7699:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7699:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7699:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7730:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7741:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7752:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7737:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7737:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "7730:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7764:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "7782:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7790:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7778:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7778:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "7768:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7802:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7811:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "7806:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7870:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "7891:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "7906:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "7900:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "7900:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "7923:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "7928:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "7919:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "7919:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "7932:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "7915:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "7915:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "7896:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7896:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7884:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7884:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7884:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7949:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "7960:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "7965:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7956:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7956:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "7949:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7981:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "7995:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "8003:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7991:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7991:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "7981:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "7832:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7835:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "7829:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7829:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "7843:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7845:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "7854:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7857:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7850:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7850:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "7845:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "7825:3:81",
                    "statements": []
                  },
                  "src": "7821:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8025:11:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "8033:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "8025:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "7504:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "7515:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "7526:4:81",
                "type": ""
              }
            ],
            "src": "7384:658:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8212:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8258:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8267:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8270:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8260:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8260:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8260:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8233:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8242:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8229:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8229:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8254:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8225:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8225:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8222:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8283:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8310:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8297:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8297:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "8287:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8329:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8339:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "8333:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8384:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8393:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8396:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8386:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8386:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8386:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8372:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8380:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8369:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8369:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8366:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8409:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8485:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "8496:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8481:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8481:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8505:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "8435:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8435:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "8413:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "8423:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8522:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "8532:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8522:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8549:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "8559:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "8549:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8576:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8609:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8620:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8605:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8605:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8592:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8592:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "8580:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8653:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8662:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8665:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8655:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8655:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8655:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "8639:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8649:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8636:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8636:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8633:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8678:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8754:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "8765:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8750:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8750:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8776:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "8704:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8704:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "8682:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "8692:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8793:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "8803:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "8793:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8820:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "8830:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "8820:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8154:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8165:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8177:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8185:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8193:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "8201:6:81",
                "type": ""
              }
            ],
            "src": "8047:797:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8983:458:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9029:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9038:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9041:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9031:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9031:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9031:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9004:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9013:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9000:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9000:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9025:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8996:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8996:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8993:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9054:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9080:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9067:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9067:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "9058:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9124:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9099:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9099:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9099:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9139:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "9149:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9139:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9163:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9194:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9205:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9190:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9190:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9177:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9177:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9167:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9252:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9261:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9264:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9254:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9254:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9254:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9224:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9232:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9221:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9221:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9218:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9277:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9353:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9364:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9349:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9349:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9373:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9303:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9303:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9281:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "9291:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9390:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9400:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9390:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9417:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "9427:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "9417:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8933:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8944:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8956:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8964:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8972:6:81",
                "type": ""
              }
            ],
            "src": "8849:592:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9488:76:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9542:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9551:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9554:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9544:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9544:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9544:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "9511:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "9532:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "9525:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "9525:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "9518:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9518:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "9508:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9508:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "9501:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9501:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9498:60:81"
                }
              ]
            },
            "name": "validator_revert_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "9477:5:81",
                "type": ""
              }
            ],
            "src": "9446:118:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9690:560:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9736:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9745:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9748:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9738:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9738:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9738:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9711:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9720:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9707:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9707:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9732:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9703:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9703:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9700:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9761:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9787:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9774:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9774:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "9765:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9831:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9806:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9806:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9806:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9846:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "9856:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9846:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9870:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9901:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9912:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9897:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9897:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9884:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9884:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9874:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9959:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9968:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9971:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9961:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9961:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9961:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9931:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9939:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9928:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9928:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9925:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9984:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10041:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "10052:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10037:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10037:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "10061:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "10010:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10010:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9988:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "9998:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10078:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "10088:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "10078:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10105:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "10115:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "10105:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10132:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10164:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10175:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10160:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10160:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10147:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10147:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "10136:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "10210:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "10188:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10188:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10188:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10227:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "10237:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "10227:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9632:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9643:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9655:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9663:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "9671:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "9679:6:81",
                "type": ""
              }
            ],
            "src": "9569:681:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10376:458:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10422:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10431:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10434:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10424:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10424:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10424:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10397:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10406:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "10393:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10393:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10418:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "10389:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10389:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10386:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10447:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10473:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10460:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10460:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "10451:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10517:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "10492:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10492:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10492:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10532:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "10542:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "10532:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10556:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10587:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10598:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10583:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10583:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10570:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10570:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "10560:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10645:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10654:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10657:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10647:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10647:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10647:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "10617:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10625:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "10614:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10614:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10611:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10670:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10746:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "10757:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10742:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10742:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "10766:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "10696:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10696:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "10674:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "10684:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10783:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "10793:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "10783:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10810:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "10820:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "10810:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint80_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10326:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "10337:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10349:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "10357:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "10365:6:81",
                "type": ""
              }
            ],
            "src": "10255:579:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10871:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10888:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10895:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10900:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "10891:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10891:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10881:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10881:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10881:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10928:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10931:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10921:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10921:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10921:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10952:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10955:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "10945:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10945:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10945:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "10839:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11016:230:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "11026:19:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11042:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "11036:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11036:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulIdentifier",
                      "src": "11026:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11054:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "11076:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nodeType": "YulIdentifier",
                                "src": "11092:4:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11098:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11088:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11088:13:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11107:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "11103:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11103:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "11084:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11084:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11072:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11072:40:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "11058:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11187:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "11189:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11189:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11189:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "11130:10:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11142:18:81",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "11127:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11127:34:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "11166:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "11178:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "11163:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11163:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "11124:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11124:62:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11121:88:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11225:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "11229:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11218:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11218:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11218:22:81"
                }
              ]
            },
            "name": "allocate_memory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "10996:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "11005:6:81",
                "type": ""
              }
            ],
            "src": "10971:275:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11309:129:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11353:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "11355:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11355:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11355:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11325:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11333:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11322:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11322:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11319:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11384:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "11404:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11412:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11400:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11400:15:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11421:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "11417:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11417:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "11396:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11396:29:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11427:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11392:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11392:40:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "11384:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "11289:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "11300:4:81",
                "type": ""
              }
            ],
            "src": "11251:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11518:263:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "11528:62:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "11582:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_string",
                          "nodeType": "YulIdentifier",
                          "src": "11553:28:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11553:36:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "11537:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11537:53:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "11528:5:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "array",
                        "nodeType": "YulIdentifier",
                        "src": "11606:5:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11613:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11599:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11599:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11599:21:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11658:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11667:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11670:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11660:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11660:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11660:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "11639:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "11644:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11635:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11635:16:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "11653:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11632:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11632:25:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11629:45:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "array",
                            "nodeType": "YulIdentifier",
                            "src": "11700:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11707:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11696:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11696:16:81"
                      },
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "11714:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11719:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "11683:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11683:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11683:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "array",
                                "nodeType": "YulIdentifier",
                                "src": "11750:5:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "11757:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11746:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11746:18:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11766:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11742:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11742:29:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11773:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11735:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11735:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11735:40:81"
                }
              ]
            },
            "name": "abi_decode_available_length_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "11487:3:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "11492:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "11500:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "11508:5:81",
                "type": ""
              }
            ],
            "src": "11443:338:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11839:169:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11888:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11897:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11900:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11890:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11890:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11890:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "11867:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11875:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11863:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11863:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "11882:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "11859:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11859:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "11852:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11852:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11849:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11913:89:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "11961:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11969:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11957:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11957:17:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "11989:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "11976:12:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11976:20:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "11998:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_string",
                      "nodeType": "YulIdentifier",
                      "src": "11922:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11922:80:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "11913:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "11813:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "11821:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "11829:5:81",
                "type": ""
              }
            ],
            "src": "11786:222:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12120:436:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12166:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12175:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12178:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12168:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12168:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12168:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "12141:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12150:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "12137:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12137:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12162:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "12133:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12133:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12130:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12191:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12218:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12205:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12205:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "12195:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12237:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "12247:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "12241:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12292:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12301:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12304:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12294:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12294:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12294:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "12280:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12288:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12277:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12277:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12274:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12317:60:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12349:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "12360:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12345:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12345:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12369:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string",
                      "nodeType": "YulIdentifier",
                      "src": "12327:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12327:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "12317:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12386:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12419:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12430:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12415:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12415:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12402:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12402:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "12390:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12463:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12472:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12475:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12465:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12465:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12465:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "12449:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12459:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12446:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12446:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12443:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12488:62:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12520:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "12531:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12516:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12516:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12542:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string",
                      "nodeType": "YulIdentifier",
                      "src": "12498:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12498:52:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "12488:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12078:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "12089:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12101:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12109:6:81",
                "type": ""
              }
            ],
            "src": "12013:543:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12730:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12776:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12785:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12788:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12778:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12778:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12778:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "12751:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12760:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "12747:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12747:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12772:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "12743:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12743:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12740:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12801:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12828:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12815:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12815:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "12805:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12847:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "12857:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "12851:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12902:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12911:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12914:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12904:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12904:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12904:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "12890:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12898:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12887:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12887:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12884:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12927:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13003:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13014:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12999:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12999:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13023:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12953:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12953:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "12931:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "12941:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13040:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "13050:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "13040:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13067:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "13077:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13067:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13094:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13127:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13138:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13123:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13123:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13110:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13110:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "13098:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13171:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13180:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13183:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13173:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13173:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13173:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "13157:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "13167:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13154:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13154:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13151:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13196:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13272:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "13283:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13268:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13268:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13294:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "13222:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13222:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "13200:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "13210:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13311:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "13321:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "13311:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13338:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "13348:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "13338:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12672:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "12683:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12695:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12703:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "12711:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "12719:6:81",
                "type": ""
              }
            ],
            "src": "12561:801:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13471:436:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13517:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13526:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13529:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13519:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13519:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13519:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "13492:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13501:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13488:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13488:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13513:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "13484:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13484:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13481:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13542:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13569:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13556:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13556:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "13546:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13622:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13631:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13634:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13624:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13624:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13624:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "13594:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13602:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13591:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13591:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13588:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13647:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13704:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13715:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13700:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13700:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13724:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "13673:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13673:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "13651:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "13661:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13741:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "13751:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "13741:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13768:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "13778:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13768:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13795:45:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13825:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13836:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13821:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13821:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13808:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13808:32:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "13799:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "13871:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "13849:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13849:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13849:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13886:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "13896:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "13886:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13421:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13432:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13444:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13452:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "13460:6:81",
                "type": ""
              }
            ],
            "src": "13367:540:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13996:298:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14042:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14051:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14054:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14044:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14044:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14044:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14017:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14026:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14013:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14013:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14038:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "14009:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14009:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14006:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14067:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14093:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14080:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14080:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "14071:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "14137:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "14112:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14112:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14112:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14152:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "14162:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14152:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14176:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14208:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14219:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14204:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14204:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14191:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14191:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "14180:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "14254:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "14232:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14232:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14232:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14271:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "14281:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "14271:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13954:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13965:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13977:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13985:6:81",
                "type": ""
              }
            ],
            "src": "13912:382:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14366:174:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14412:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14421:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14424:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14414:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14414:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14414:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14387:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14396:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14383:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14383:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14408:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "14379:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14379:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14376:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14437:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14463:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14450:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14450:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "14441:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "14504:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "14482:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14482:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14482:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14519:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "14529:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14519:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14332:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "14343:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "14355:6:81",
                "type": ""
              }
            ],
            "src": "14299:241:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14631:329:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14677:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14686:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14689:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14679:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14679:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14679:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14652:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14661:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14648:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14648:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14673:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "14644:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14644:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14641:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14702:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14728:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14715:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14715:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "14706:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "14772:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "14747:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14747:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14747:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14787:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "14797:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14787:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14811:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14843:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14854:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14839:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14839:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14826:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14826:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "14815:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14912:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14921:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14924:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14914:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14914:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14914:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value_1",
                            "nodeType": "YulIdentifier",
                            "src": "14880:7:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value_1",
                                "nodeType": "YulIdentifier",
                                "src": "14893:7:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14902:6:81",
                                "type": "",
                                "value": "0xffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "14889:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14889:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "14877:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14877:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "14870:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14870:41:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14867:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14937:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "14947:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "14937:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint16",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14589:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "14600:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "14612:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "14620:6:81",
                "type": ""
              }
            ],
            "src": "14545:415:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15147:750:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15193:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15202:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15205:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15195:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15195:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15195:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "15168:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15177:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "15164:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15164:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15189:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "15160:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15160:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15157:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15218:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15244:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15231:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15231:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "15222:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "15288:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "15263:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15263:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15263:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15303:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "15313:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "15303:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15327:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15358:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15369:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15354:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15354:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15341:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15341:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "15331:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15382:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "15392:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "15386:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15437:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15446:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15449:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15439:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15439:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15439:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "15425:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15433:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15422:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15422:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15419:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15462:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15538:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "15549:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15534:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15534:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15558:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15488:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15488:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "15466:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "15476:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15575:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "15585:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "15575:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15602:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "15612:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "15602:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15629:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15662:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15673:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15658:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15658:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15645:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15645:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "15633:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15706:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15715:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15718:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15708:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15708:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15708:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "15692:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15702:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15689:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15689:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15686:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15731:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15807:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "15818:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15803:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15803:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15829:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15757:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15757:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "15735:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "15745:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15846:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "15856:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "15846:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15873:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "15883:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "15873:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15081:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "15092:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15104:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "15112:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "15120:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "15128:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "15136:6:81",
                "type": ""
              }
            ],
            "src": "14965:932:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16001:101:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "16011:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16023:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16034:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16019:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16019:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "16011:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16053:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "16068:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "16084:2:81",
                                    "type": "",
                                    "value": "80"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "16088:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "16080:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "16080:10:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "16092:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "16076:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "16076:18:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "16064:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16064:31:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16046:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16046:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16046:50:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint80__to_t_uint80__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15970:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15981:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "15992:4:81",
                "type": ""
              }
            ],
            "src": "15902:200:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16237:665:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16284:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16293:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16296:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16286:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16286:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16286:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "16258:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16267:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "16254:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16254:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16279:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "16250:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16250:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16247:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16309:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16335:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16322:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16322:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "16313:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "16379:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "16354:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16354:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16354:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16394:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "16404:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "16394:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16418:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16450:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16461:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16446:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16446:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16433:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16433:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "16422:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "16499:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "16474:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16474:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16474:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16516:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "16526:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "16516:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16542:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16569:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16580:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16565:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16565:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16552:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16552:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "16542:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16593:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16624:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16635:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16620:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16620:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16607:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16607:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "16597:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16682:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16691:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16694:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16684:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16684:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16684:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "16654:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16662:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16651:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16651:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16648:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16707:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16721:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "16732:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16717:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16717:22:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "16711:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16787:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16796:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16799:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16789:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16789:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16789:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "16766:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "16770:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "16762:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "16762:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "16777:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "16758:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16758:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "16751:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16751:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16748:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16812:84:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "16861:2:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16865:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16857:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16857:11:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "16883:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "16870:12:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16870:16:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16888:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_string",
                      "nodeType": "YulIdentifier",
                      "src": "16822:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16822:74:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "16812:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "16179:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "16190:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "16202:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "16210:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "16218:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "16226:6:81",
                "type": ""
              }
            ],
            "src": "16107:795:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16976:400:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16986:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "17006:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "17000:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17000:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "16990:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17028:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "17033:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17021:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17021:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17021:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17049:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "17059:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "17053:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17072:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17083:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17088:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17079:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17079:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "17072:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17100:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "17118:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17125:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17114:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17114:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "17104:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17137:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "17146:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "17141:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17205:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "17226:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "17241:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "17235:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "17235:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "17258:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "17263:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "17254:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "17254:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "17267:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "17250:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "17250:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "17231:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "17231:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "17219:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17219:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17219:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "17284:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "17295:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "17300:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "17291:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17291:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "17284:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "17316:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "17330:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "17338:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "17326:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17326:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "17316:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "17167:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "17170:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "17164:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17164:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "17178:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "17180:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "17189:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17192:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "17185:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17185:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "17180:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "17160:3:81",
                    "statements": []
                  },
                  "src": "17156:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17360:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "17367:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "17360:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_address_payable_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "16953:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "16960:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "16968:3:81",
                "type": ""
              }
            ],
            "src": "16907:469:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17548:118:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17565:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17576:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17558:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17558:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17558:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17588:72:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "17633:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17645:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17656:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17641:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17641:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_payable_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "17596:36:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17596:64:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "17588:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17517:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17528:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17539:4:81",
                "type": ""
              }
            ],
            "src": "17381:285:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17916:244:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17933:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17944:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17926:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17926:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17926:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17956:78:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "18007:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18019:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18030:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18015:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18015:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_payable_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "17970:36:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17970:64:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "17960:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18054:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18065:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18050:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18050:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "18074:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18082:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18070:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18070:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18043:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18043:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18043:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18102:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "18139:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "18147:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "18110:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18110:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "18102:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17877:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17888:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17896:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17907:4:81",
                "type": ""
              }
            ],
            "src": "17671:489:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18213:123:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "18223:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "18245:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18232:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18232:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "18223:5:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18314:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18323:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18326:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18316:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18316:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18316:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "18274:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "18285:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "18300:2:81",
                                        "type": "",
                                        "value": "80"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "18304:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "18296:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "18296:10:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "18308:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "18292:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "18292:18:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "18281:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "18281:30:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "18271:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18271:41:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "18264:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18264:49:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18261:69:81"
                }
              ]
            },
            "name": "abi_decode_uint80",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "18192:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "18203:5:81",
                "type": ""
              }
            ],
            "src": "18165:171:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18427:233:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18473:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18482:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18485:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18475:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18475:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18475:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18448:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18457:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18444:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18444:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18469:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18440:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18440:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18437:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18498:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18524:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18511:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18511:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "18502:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "18568:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18543:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18543:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18543:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18583:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "18593:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18583:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18607:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18639:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18650:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18635:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18635:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint80",
                      "nodeType": "YulIdentifier",
                      "src": "18617:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18617:37:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "18607:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint80",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18385:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18396:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18408:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18416:6:81",
                "type": ""
              }
            ],
            "src": "18341:319:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18752:301:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18798:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18807:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18810:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18800:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18800:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18800:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18773:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18782:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18769:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18769:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18794:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18765:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18765:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18762:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18823:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18849:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18836:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18836:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "18827:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "18893:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18868:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18868:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18868:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18908:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "18918:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18908:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18932:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18964:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18975:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18960:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18960:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18947:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18947:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "18936:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "19013:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18988:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18988:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18988:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19030:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "19040:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "19030:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18710:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18721:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18733:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18741:6:81",
                "type": ""
              }
            ],
            "src": "18665:388:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19232:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19249:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19260:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19242:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19242:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19242:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19283:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19294:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19279:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19279:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19299:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19272:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19272:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19272:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19322:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19333:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19318:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19318:18:81"
                      },
                      {
                        "hexValue": "41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "19338:34:81",
                        "type": "",
                        "value": "AdminControl: Must be owner or a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19311:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19311:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19311:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19393:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19404:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19389:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19389:18:81"
                      },
                      {
                        "hexValue": "646d696e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "19409:6:81",
                        "type": "",
                        "value": "dmin"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19382:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19382:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19382:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19425:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19437:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19448:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19433:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19433:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "19425:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19209:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "19223:4:81",
                "type": ""
              }
            ],
            "src": "19058:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19518:325:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "19528:22:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19542:1:81",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "19545:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "19538:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19538:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "19528:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19559:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "19589:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19595:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "19585:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19585:12:81"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "19563:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19636:31:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "19638:27:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "19652:6:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19660:4:81",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "19648:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19648:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "19638:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "19616:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "19609:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19609:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19606:61:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19726:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19747:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "19754:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "19759:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "19750:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "19750:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "19740:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19740:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19740:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19791:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19794:4:81",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "19784:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19784:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19784:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19819:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19822:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19812:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19812:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19812:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "19682:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "19705:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19713:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "19702:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19702:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "19679:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19679:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19676:161:81"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "19498:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "19507:6:81",
                "type": ""
              }
            ],
            "src": "19463:380:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20022:223:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20039:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20050:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20032:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20032:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20032:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20073:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20084:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20069:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20069:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20089:2:81",
                        "type": "",
                        "value": "33"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20062:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20062:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20062:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20112:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20123:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20108:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20108:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20128:34:81",
                        "type": "",
                        "value": "ERC721: approval to current owne"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20101:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20101:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20101:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20183:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20194:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20179:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20179:18:81"
                      },
                      {
                        "hexValue": "72",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20199:3:81",
                        "type": "",
                        "value": "r"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20172:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20172:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20172:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20212:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20224:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20235:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20220:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20220:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20212:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19999:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20013:4:81",
                "type": ""
              }
            ],
            "src": "19848:397:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20424:251:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20441:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20452:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20434:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20434:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20434:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20475:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20486:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20471:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20471:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20491:2:81",
                        "type": "",
                        "value": "61"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20464:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20464:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20464:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20514:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20525:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20510:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20510:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20530:34:81",
                        "type": "",
                        "value": "ERC721: approve caller is not to"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20503:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20503:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20503:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20585:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20596:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20581:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20581:18:81"
                      },
                      {
                        "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20601:31:81",
                        "type": "",
                        "value": "ken owner or approved for all"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20574:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20574:59:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20574:59:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20642:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20654:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20665:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20650:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20650:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20642:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20401:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20415:4:81",
                "type": ""
              }
            ],
            "src": "20250:425:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20854:167:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20871:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20882:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20864:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20864:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20864:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20905:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20916:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20901:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20901:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20921:2:81",
                        "type": "",
                        "value": "17"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20894:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20894:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20894:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20944:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20955:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20940:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20940:18:81"
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20960:19:81",
                        "type": "",
                        "value": "Nonexistent token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20933:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20933:47:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20933:47:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20989:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21001:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21012:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20997:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20997:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20989:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20831:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20845:4:81",
                "type": ""
              }
            ],
            "src": "20680:341:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21200:172:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21217:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21228:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21210:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21210:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21210:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21251:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21262:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21247:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21247:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21267:2:81",
                        "type": "",
                        "value": "22"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21240:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21240:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21240:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21290:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21301:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21286:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21286:18:81"
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "21306:24:81",
                        "type": "",
                        "value": "No extension for token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21279:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21279:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21279:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21340:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21352:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21363:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21348:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21348:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "21340:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21177:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "21191:4:81",
                "type": ""
              }
            ],
            "src": "21026:346:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21551:171:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21568:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21579:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21561:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21561:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21561:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21602:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21613:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21598:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21598:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21618:2:81",
                        "type": "",
                        "value": "21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21591:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21591:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21591:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21641:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21652:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21637:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21637:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "21657:23:81",
                        "type": "",
                        "value": "Extension blacklisted"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21630:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21630:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21630:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21690:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21702:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21713:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21698:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21698:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "21690:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21528:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "21542:4:81",
                "type": ""
              }
            ],
            "src": "21377:345:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21901:235:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21918:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21929:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21911:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21911:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21911:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21952:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21963:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21948:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21948:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21968:2:81",
                        "type": "",
                        "value": "45"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21941:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21941:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21941:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21991:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22002:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21987:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21987:18:81"
                      },
                      {
                        "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22007:34:81",
                        "type": "",
                        "value": "ERC721: caller is not token owne"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21980:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21980:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21980:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22062:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22073:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22058:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22058:18:81"
                      },
                      {
                        "hexValue": "72206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22078:15:81",
                        "type": "",
                        "value": "r or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22051:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22051:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22051:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22103:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22115:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22126:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22111:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22111:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22103:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21878:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "21892:4:81",
                "type": ""
              }
            ],
            "src": "21727:409:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22173:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22190:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22197:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22202:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "22193:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22193:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22183:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22183:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22183:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22230:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22233:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22223:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22223:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22223:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22254:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22257:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "22247:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22247:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22247:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "22141:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22305:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22322:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22329:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22334:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "22325:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22325:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22315:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22315:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22315:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22362:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22365:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22355:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22355:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22355:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22386:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22389:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "22379:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22379:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22379:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "22273:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22452:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22483:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "22485:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22485:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22485:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "22468:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22479:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "22475:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22475:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "22465:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22465:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22462:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22514:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "22525:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22532:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22521:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22521:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "22514:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "22434:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "22444:3:81",
                "type": ""
              }
            ],
            "src": "22405:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22593:77:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "22603:16:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "22614:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "22617:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22610:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22610:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nodeType": "YulIdentifier",
                      "src": "22603:3:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22642:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "22644:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22644:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22644:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "22634:1:81"
                      },
                      {
                        "name": "sum",
                        "nodeType": "YulIdentifier",
                        "src": "22637:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "22631:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22631:10:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22628:36:81"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "22576:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "22579:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nodeType": "YulTypedName",
                "src": "22585:3:81",
                "type": ""
              }
            ],
            "src": "22545:125:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22770:427:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "22780:51:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "ptr_to_tail",
                        "nodeType": "YulIdentifier",
                        "src": "22819:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "22806:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22806:25:81"
                  },
                  "variables": [
                    {
                      "name": "rel_offset_of_tail",
                      "nodeType": "YulTypedName",
                      "src": "22784:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22920:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22929:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22932:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "22922:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22922:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22922:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "rel_offset_of_tail",
                            "nodeType": "YulIdentifier",
                            "src": "22854:18:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [],
                                    "functionName": {
                                      "name": "calldatasize",
                                      "nodeType": "YulIdentifier",
                                      "src": "22882:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "22882:14:81"
                                  },
                                  {
                                    "name": "base_ref",
                                    "nodeType": "YulIdentifier",
                                    "src": "22898:8:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "22878:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "22878:29:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "22913:2:81",
                                    "type": "",
                                    "value": "30"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "22909:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "22909:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "22874:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "22874:43:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "22850:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22850:68:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "22843:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22843:76:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22840:96:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "22945:47:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "base_ref",
                        "nodeType": "YulIdentifier",
                        "src": "22963:8:81"
                      },
                      {
                        "name": "rel_offset_of_tail",
                        "nodeType": "YulIdentifier",
                        "src": "22973:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22959:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22959:33:81"
                  },
                  "variables": [
                    {
                      "name": "addr_1",
                      "nodeType": "YulTypedName",
                      "src": "22949:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23001:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "23024:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "23011:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23011:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "23001:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23074:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23083:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23086:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "23076:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23076:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23076:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "23046:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23054:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "23043:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23043:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23040:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23099:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "23111:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23119:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23107:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23107:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "addr",
                      "nodeType": "YulIdentifier",
                      "src": "23099:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23175:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23184:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23187:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "23177:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23177:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23177:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "addr",
                        "nodeType": "YulIdentifier",
                        "src": "23140:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "calldatasize",
                              "nodeType": "YulIdentifier",
                              "src": "23150:12:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "23150:14:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "23166:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "23146:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23146:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "sgt",
                      "nodeType": "YulIdentifier",
                      "src": "23136:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23136:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23133:58:81"
                }
              ]
            },
            "name": "access_calldata_tail_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "base_ref",
                "nodeType": "YulTypedName",
                "src": "22727:8:81",
                "type": ""
              },
              {
                "name": "ptr_to_tail",
                "nodeType": "YulTypedName",
                "src": "22737:11:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "addr",
                "nodeType": "YulTypedName",
                "src": "22753:4:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "22759:6:81",
                "type": ""
              }
            ],
            "src": "22675:522:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23271:115:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23317:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23326:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23329:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "23319:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23319:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23319:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "23292:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23301:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "23288:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23288:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23313:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "23284:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23284:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23281:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23342:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23370:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint80",
                      "nodeType": "YulIdentifier",
                      "src": "23352:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23352:28:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "23342:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint80",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23237:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "23248:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "23260:6:81",
                "type": ""
              }
            ],
            "src": "23202:184:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23565:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23582:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23593:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23575:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23575:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23575:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23616:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23627:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23612:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23612:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23632:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23605:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23605:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23605:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23655:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23666:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23651:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23651:18:81"
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "23671:33:81",
                        "type": "",
                        "value": "Caller is not owner or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23644:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23644:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23644:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23714:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23726:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23737:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23722:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23722:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23714:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23542:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23556:4:81",
                "type": ""
              }
            ],
            "src": "23391:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23925:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23942:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23953:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23935:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23935:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23935:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23976:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23987:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23972:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23972:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23992:2:81",
                        "type": "",
                        "value": "46"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23965:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23965:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23965:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24015:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24026:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24011:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24011:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24031:34:81",
                        "type": "",
                        "value": "Initializable: contract is alrea"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24004:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24004:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24004:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24086:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24097:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24082:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24082:18:81"
                      },
                      {
                        "hexValue": "647920696e697469616c697a6564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24102:16:81",
                        "type": "",
                        "value": "dy initialized"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24075:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24075:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24075:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24128:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24140:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24151:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24136:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24136:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24128:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23902:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23916:4:81",
                "type": ""
              }
            ],
            "src": "23751:410:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24273:87:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "24283:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24295:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24306:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24291:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24291:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24283:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24325:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "24340:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24348:4:81",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "24336:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24336:17:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24318:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24318:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24318:36:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24242:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "24253:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24264:4:81",
                "type": ""
              }
            ],
            "src": "24166:194:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24539:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24556:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24567:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24549:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24549:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24549:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24590:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24601:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24586:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24586:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24606:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24579:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24579:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24579:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24629:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24640:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24625:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24625:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24645:15:81",
                        "type": "",
                        "value": "Invalid input"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24618:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24618:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24618:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24670:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24682:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24693:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24678:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24678:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24670:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24516:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24530:4:81",
                "type": ""
              }
            ],
            "src": "24365:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24881:174:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24898:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24909:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24891:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24891:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24891:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24932:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24943:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24928:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24928:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24948:2:81",
                        "type": "",
                        "value": "24"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24921:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24921:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24921:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24971:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24982:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24967:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24967:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20696e76616c696420746f6b656e204944",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24987:26:81",
                        "type": "",
                        "value": "ERC721: invalid token ID"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24960:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24960:54:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24960:54:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25023:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25035:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25046:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25031:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25031:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25023:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24858:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24872:4:81",
                "type": ""
              }
            ],
            "src": "24707:348:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25234:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25251:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25262:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25244:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25244:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25244:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25285:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25296:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25281:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25281:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25301:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25274:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25274:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25274:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25324:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25335:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25320:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25320:18:81"
                      },
                      {
                        "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25340:34:81",
                        "type": "",
                        "value": "ERC721: address zero is not a va"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25313:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25313:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25313:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25395:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25406:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25391:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25391:18:81"
                      },
                      {
                        "hexValue": "6c6964206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25411:11:81",
                        "type": "",
                        "value": "lid owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25384:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25384:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25384:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25432:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25444:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25455:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25440:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25440:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25432:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25211:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25225:4:81",
                "type": ""
              }
            ],
            "src": "25060:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25644:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25661:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25672:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25654:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25654:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25654:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25695:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25706:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25691:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25691:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25711:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25684:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25684:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25684:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25734:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25745:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25730:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25730:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25750:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25723:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25723:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25723:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25805:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25816:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25801:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25801:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25821:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25794:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25794:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25794:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25839:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25851:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25862:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25847:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25847:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25839:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25621:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25635:4:81",
                "type": ""
              }
            ],
            "src": "25470:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26051:175:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26068:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26079:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26061:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26061:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26061:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26102:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26113:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26098:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26098:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26118:2:81",
                        "type": "",
                        "value": "25"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26091:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26091:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26091:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26141:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26152:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26137:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26137:18:81"
                      },
                      {
                        "hexValue": "43616e6e6f7420626c61636b6c69737420796f757273656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26157:27:81",
                        "type": "",
                        "value": "Cannot blacklist yourself"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26130:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26130:55:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26130:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26194:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26206:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26217:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26202:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26202:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26194:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0cc452069841e70d1cdcec58868ea025555fa12c1e760cb45ef052b3f01f1f1e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26028:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26042:4:81",
                "type": ""
              }
            ],
            "src": "25877:349:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26405:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26422:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26433:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26415:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26415:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26415:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26456:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26467:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26452:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26452:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26472:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26445:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26445:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26445:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26495:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26506:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26491:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26491:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26511:15:81",
                        "type": "",
                        "value": "Invalid token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26484:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26484:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26484:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26536:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26548:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26559:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26544:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26544:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26536:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26382:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26396:4:81",
                "type": ""
              }
            ],
            "src": "26231:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26629:65:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26646:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "ptr",
                        "nodeType": "YulIdentifier",
                        "src": "26649:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26639:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26639:14:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26639:14:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26662:26:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26680:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26683:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "keccak256",
                      "nodeType": "YulIdentifier",
                      "src": "26670:9:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26670:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "data",
                      "nodeType": "YulIdentifier",
                      "src": "26662:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_dataslot_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nodeType": "YulTypedName",
                "src": "26612:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "26620:4:81",
                "type": ""
              }
            ],
            "src": "26573:121:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26780:464:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "26813:425:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "26827:11:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "26837:1:81",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "26831:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "26858:2:81"
                            },
                            {
                              "name": "array",
                              "nodeType": "YulIdentifier",
                              "src": "26862:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "26851:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26851:17:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "26851:17:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "26881:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "26903:2:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "26907:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "26893:9:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26893:19:81"
                        },
                        "variables": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "26885:4:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "26925:57:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "26948:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "26958:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "startIndex",
                                      "nodeType": "YulIdentifier",
                                      "src": "26965:10:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "26977:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "26961:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "26961:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "26954:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "26954:27:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "26944:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26944:38:81"
                        },
                        "variables": [
                          {
                            "name": "deleteStart",
                            "nodeType": "YulTypedName",
                            "src": "26929:11:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "27019:23:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "27021:19:81",
                              "value": {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "27036:4:81"
                              },
                              "variableNames": [
                                {
                                  "name": "deleteStart",
                                  "nodeType": "YulIdentifier",
                                  "src": "27021:11:81"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "startIndex",
                              "nodeType": "YulIdentifier",
                              "src": "27001:10:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27013:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "26998:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26998:20:81"
                        },
                        "nodeType": "YulIf",
                        "src": "26995:47:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "27055:41:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "27069:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "27079:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "27086:3:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "27091:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "27082:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "27082:12:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "27075:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "27075:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "27065:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27065:31:81"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nodeType": "YulTypedName",
                            "src": "27059:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "27109:24:81",
                        "value": {
                          "name": "deleteStart",
                          "nodeType": "YulIdentifier",
                          "src": "27122:11:81"
                        },
                        "variables": [
                          {
                            "name": "start",
                            "nodeType": "YulTypedName",
                            "src": "27113:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "27207:21:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "27216:5:81"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "27223:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "27209:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "27209:17:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "27209:17:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "start",
                              "nodeType": "YulIdentifier",
                              "src": "27157:5:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "27164:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "27154:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27154:13:81"
                        },
                        "nodeType": "YulForLoop",
                        "post": {
                          "nodeType": "YulBlock",
                          "src": "27168:26:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "27170:22:81",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "27183:5:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "27190:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "27179:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "27179:13:81"
                              },
                              "variableNames": [
                                {
                                  "name": "start",
                                  "nodeType": "YulIdentifier",
                                  "src": "27170:5:81"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nodeType": "YulBlock",
                          "src": "27150:3:81",
                          "statements": []
                        },
                        "src": "27146:82:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "26796:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26801:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "26793:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26793:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "26790:448:81"
                }
              ]
            },
            "name": "clean_up_bytearray_end_slots_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "26752:5:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "26759:3:81",
                "type": ""
              },
              {
                "name": "startIndex",
                "nodeType": "YulTypedName",
                "src": "26764:10:81",
                "type": ""
              }
            ],
            "src": "26699:545:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27334:81:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "27344:65:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "nodeType": "YulIdentifier",
                            "src": "27359:4:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "27377:1:81",
                                        "type": "",
                                        "value": "3"
                                      },
                                      {
                                        "name": "len",
                                        "nodeType": "YulIdentifier",
                                        "src": "27380:3:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "27373:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "27373:11:81"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "27390:1:81",
                                        "type": "",
                                        "value": "0"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "27386:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "27386:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "27369:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "27369:24:81"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "27365:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "27365:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "27355:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27355:40:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27401:1:81",
                            "type": "",
                            "value": "1"
                          },
                          {
                            "name": "len",
                            "nodeType": "YulIdentifier",
                            "src": "27404:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "27397:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27397:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "27352:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27352:57:81"
                  },
                  "variableNames": [
                    {
                      "name": "used",
                      "nodeType": "YulIdentifier",
                      "src": "27344:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "extract_used_part_and_set_length_of_short_byte_array",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "27311:4:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "27317:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "used",
                "nodeType": "YulTypedName",
                "src": "27325:4:81",
                "type": ""
              }
            ],
            "src": "27249:166:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27523:1103:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "27564:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "27566:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27566:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "27566:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "27539:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27544:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "27536:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27536:27:81"
                  },
                  "nodeType": "YulIf",
                  "src": "27533:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "27639:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "27677:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "27671:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "27671:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "27645:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27645:38:81"
                      },
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "27685:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "27595:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27595:94:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27595:94:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "27698:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "27715:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "27702:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "27759:609:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "27773:32:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "27792:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "27801:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "27797:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "27797:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "27788:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "27788:17:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "27777:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "27818:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "27862:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "27832:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "27832:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "27822:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "27880:18:81",
                            "value": {
                              "name": "srcOffset",
                              "nodeType": "YulIdentifier",
                              "src": "27889:9:81"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "27884:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "27968:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "27993:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "28018:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "28023:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "28014:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "28014:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "calldataload",
                                          "nodeType": "YulIdentifier",
                                          "src": "28001:12:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "28001:33:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "27986:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "27986:49:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "27986:49:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "28052:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "28066:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "28074:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "28062:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28062:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "28052:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "28093:33:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "28110:9:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "28121:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "28106:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28106:20:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "28093:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "27922:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "27925:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "27919:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "27919:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "27934:21:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "27936:17:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "27945:1:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "27948:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "27941:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "27941:12:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "27936:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "27915:3:81",
                              "statements": []
                            },
                            "src": "27911:229:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "28185:127:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "28210:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "name": "src",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "28239:3:81"
                                                  },
                                                  {
                                                    "name": "srcOffset",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "28244:9:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "add",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "28235:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "28235:19:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "calldataload",
                                              "nodeType": "YulIdentifier",
                                              "src": "28222:12:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "28222:33:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "28273:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "len",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "28276:3:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "28269:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "28269:11:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "28282:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "28265:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "28265:21:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "28292:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "28288:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "28288:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "28261:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "28261:34:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "28257:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "28257:39:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "28218:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "28218:79:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "28203:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28203:95:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "28203:95:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "28159:7:81"
                                },
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "28168:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "28156:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28156:16:81"
                            },
                            "nodeType": "YulIf",
                            "src": "28153:159:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "28332:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "28346:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "len",
                                          "nodeType": "YulIdentifier",
                                          "src": "28349:3:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "28342:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "28342:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "28355:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "28338:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "28338:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "28325:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28325:33:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "28325:33:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "27752:616:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27757:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "28385:235:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "28399:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "28412:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "28403:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "28445:74:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "28463:42:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "28489:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "28494:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "28485:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "28485:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "calldataload",
                                      "nodeType": "YulIdentifier",
                                      "src": "28472:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28472:33:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "28463:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "len",
                              "nodeType": "YulIdentifier",
                              "src": "28429:3:81"
                            },
                            "nodeType": "YulIf",
                            "src": "28426:93:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "28539:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "28598:5:81"
                                    },
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "28605:3:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "28545:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "28545:64:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "28532:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28532:78:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "28532:78:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "28377:243:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "27735:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27740:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "27732:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27732:11:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "27725:895:81"
                }
              ]
            },
            "name": "copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nodeType": "YulTypedName",
                "src": "27503:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "27509:3:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "27514:3:81",
                "type": ""
              }
            ],
            "src": "27420:1206:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28896:810:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "28906:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28924:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28935:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "28920:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28920:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "28910:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28954:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28965:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28947:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28947:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28947:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "28977:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "28988:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "28981:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "29010:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "29018:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29003:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29003:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29003:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "29034:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "29045:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29056:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "29041:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29041:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "29034:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29068:20:81",
                  "value": {
                    "name": "value0",
                    "nodeType": "YulIdentifier",
                    "src": "29082:6:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "29072:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29097:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "29106:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "29101:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29165:255:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "29179:33:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "29205:6:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "29192:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29192:20:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "29183:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "29250:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "29225:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29225:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29225:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "29276:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "29285:5:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "29300:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "29305:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "29296:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "29296:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "29309:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "29292:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "29292:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "29281:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29281:31:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "29269:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29269:44:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29269:44:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "29326:14:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "29336:4:81",
                          "type": "",
                          "value": "0x20"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "29330:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "29353:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "29364:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "29369:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "29360:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29360:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "29353:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "29385:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "29399:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "29407:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "29395:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29395:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "29385:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "29127:1:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "29130:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "29124:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29124:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "29138:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "29140:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "29149:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29152:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "29145:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29145:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "29140:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "29120:3:81",
                    "statements": []
                  },
                  "src": "29116:304:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29440:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29451:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29436:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29436:20:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "29462:3:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29467:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "29458:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29458:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29429:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29429:49:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29429:49:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "29494:3:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "29499:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29487:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29487:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29487:19:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29550:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29559:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29562:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "29552:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29552:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29552:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "29521:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "29537:3:81",
                                "type": "",
                                "value": "251"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "29542:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "29533:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "29533:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29546:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "29529:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29529:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "29518:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29518:31:81"
                  },
                  "nodeType": "YulIf",
                  "src": "29515:51:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29575:28:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29593:1:81",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "29596:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "29589:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29589:14:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "29579:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "29629:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29634:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29625:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29625:14:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "29641:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "29649:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "29612:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29612:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29612:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "29665:35:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "29681:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "29686:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29677:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29677:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29695:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "29673:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29673:27:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "29665:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "28841:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "28852:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "28860:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "28868:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "28876:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "28887:4:81",
                "type": ""
              }
            ],
            "src": "28631:1075:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29885:227:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "29902:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29913:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29895:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29895:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29895:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29936:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29947:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29932:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29932:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29952:2:81",
                        "type": "",
                        "value": "37"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29925:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29925:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29925:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29975:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29986:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29971:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29971:18:81"
                      },
                      {
                        "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "29991:34:81",
                        "type": "",
                        "value": "ERC721: transfer from incorrect "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29964:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29964:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29964:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30046:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30057:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30042:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30042:18:81"
                      },
                      {
                        "hexValue": "6f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "30062:7:81",
                        "type": "",
                        "value": "owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30035:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30035:35:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30035:35:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30079:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30091:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30102:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30087:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30087:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "30079:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "29862:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "29876:4:81",
                "type": ""
              }
            ],
            "src": "29711:401:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30291:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30308:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30319:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30301:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30301:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30301:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30342:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30353:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30338:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30338:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30358:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30331:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30331:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30331:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30381:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30392:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30377:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30377:18:81"
                      },
                      {
                        "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "30397:34:81",
                        "type": "",
                        "value": "ERC721: transfer to the zero add"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30370:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30370:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30370:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30452:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30463:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30448:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30448:18:81"
                      },
                      {
                        "hexValue": "72657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "30468:6:81",
                        "type": "",
                        "value": "ress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30441:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30441:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30441:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30484:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30496:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30507:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30492:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30492:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "30484:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "30268:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "30282:4:81",
                "type": ""
              }
            ],
            "src": "30117:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30696:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30713:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30724:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30706:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30706:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30706:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30747:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30758:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30743:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30743:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30763:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30736:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30736:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30736:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30786:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30797:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30782:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30782:18:81"
                      },
                      {
                        "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "30802:33:81",
                        "type": "",
                        "value": "ReentrancyGuard: reentrant call"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30775:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30775:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30775:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30845:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30857:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30868:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30853:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30853:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "30845:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "30673:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "30687:4:81",
                "type": ""
              }
            ],
            "src": "30522:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31056:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "31073:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31084:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "31066:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31066:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31066:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "31107:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31118:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31103:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31103:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31123:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "31096:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31096:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31096:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "31146:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31157:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31142:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31142:18:81"
                      },
                      {
                        "hexValue": "4d757374206265207265676973746572656420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "31162:30:81",
                        "type": "",
                        "value": "Must be registered extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "31135:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31135:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31135:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "31202:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "31214:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31225:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "31210:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31210:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "31202:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5feba5446d49a024c011d96fb2b4cea222ce6e949e033fe53cd137156df8a35f__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "31033:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "31047:4:81",
                "type": ""
              }
            ],
            "src": "30882:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31335:1256:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31345:24:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "31365:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "31359:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31359:10:81"
                  },
                  "variables": [
                    {
                      "name": "newLen",
                      "nodeType": "YulTypedName",
                      "src": "31349:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "31412:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "31414:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31414:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "31414:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "31384:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31392:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "31381:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31381:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "31378:56:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "31487:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "31525:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "31519:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "31519:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "31493:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31493:38:81"
                      },
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "31533:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "31443:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31443:97:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31443:97:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31549:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "31566:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "31553:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31576:23:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "31595:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "srcOffset_1",
                      "nodeType": "YulTypedName",
                      "src": "31580:11:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "31608:24:81",
                  "value": {
                    "name": "srcOffset_1",
                    "nodeType": "YulIdentifier",
                    "src": "31621:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulIdentifier",
                      "src": "31608:9:81"
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "31678:656:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31692:35:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "31711:6:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "31723:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "31719:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31719:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "31707:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31707:20:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "31696:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31740:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "31784:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "31754:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31754:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "31744:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31802:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "31811:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "31806:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "31889:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "31914:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "31932:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "31937:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "31928:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "31928:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "mload",
                                          "nodeType": "YulIdentifier",
                                          "src": "31922:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "31922:26:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "31907:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31907:42:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "31907:42:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "31966:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "31980:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31988:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "31976:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31976:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "31966:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32007:40:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "32024:9:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "32035:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "32020:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32020:27:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "32007:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "31836:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "31839:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "31833:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31833:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "31848:28:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "31850:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "31859:1:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "31862:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "31855:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31855:19:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "31850:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "31829:3:81",
                              "statements": []
                            },
                            "src": "31825:236:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32109:166:81",
                              "statements": [
                                {
                                  "nodeType": "YulVariableDeclaration",
                                  "src": "32127:43:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "32154:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "32159:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "32150:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32150:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "32144:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32144:26:81"
                                  },
                                  "variables": [
                                    {
                                      "name": "lastValue",
                                      "nodeType": "YulTypedName",
                                      "src": "32131:9:81",
                                      "type": ""
                                    }
                                  ]
                                },
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "32194:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "lastValue",
                                            "nodeType": "YulIdentifier",
                                            "src": "32206:9:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "32233:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "newLen",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "32236:6:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "32229:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "32229:14:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "32245:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "32225:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "32225:24:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "32255:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "32251:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "32251:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "32221:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "32221:37:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "32217:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "32217:42:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "32202:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32202:58:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "32187:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32187:74:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "32187:74:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "32080:7:81"
                                },
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "32089:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "32077:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32077:19:81"
                            },
                            "nodeType": "YulIf",
                            "src": "32074:201:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "32295:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "32309:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "newLen",
                                          "nodeType": "YulIdentifier",
                                          "src": "32312:6:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "32305:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "32305:14:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "32321:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "32301:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32301:22:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "32288:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32288:36:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "32288:36:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "31671:663:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31676:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "32351:234:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32365:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32378:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "32369:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32414:67:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32432:35:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "32451:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "32456:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "32447:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32447:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "32441:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32441:26:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "32432:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "newLen",
                              "nodeType": "YulIdentifier",
                              "src": "32395:6:81"
                            },
                            "nodeType": "YulIf",
                            "src": "32392:89:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "32501:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "32560:5:81"
                                    },
                                    {
                                      "name": "newLen",
                                      "nodeType": "YulIdentifier",
                                      "src": "32567:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "32507:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32507:67:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "32494:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32494:81:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "32494:81:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "32343:242:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "31651:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31659:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "31648:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31648:14:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "31641:944:81"
                }
              ]
            },
            "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nodeType": "YulTypedName",
                "src": "31320:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "31326:3:81",
                "type": ""
              }
            ],
            "src": "31239:1352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32770:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "32787:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32798:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32780:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32780:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32780:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "32821:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32832:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32817:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32817:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32837:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32810:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32810:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "32860:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32871:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32856:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32856:18:81"
                      },
                      {
                        "hexValue": "4d6f7265207468616e203120726f79616c7479207265636569766572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "32876:30:81",
                        "type": "",
                        "value": "More than 1 royalty receiver"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32849:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32849:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32849:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "32916:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "32928:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32939:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "32924:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32924:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "32916:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_74694d19c1b4be9a45fa733d1aaae2782afce905305cd809636e222af28aa3f3__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "32747:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "32761:4:81",
                "type": ""
              }
            ],
            "src": "32596:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33005:116:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "33015:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "33030:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "33033:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "mul",
                      "nodeType": "YulIdentifier",
                      "src": "33026:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33026:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "product",
                      "nodeType": "YulIdentifier",
                      "src": "33015:7:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "33093:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "33095:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33095:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33095:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "nodeType": "YulIdentifier",
                                "src": "33064:1:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "33057:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "33057:9:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "y",
                                "nodeType": "YulIdentifier",
                                "src": "33071:1:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "product",
                                    "nodeType": "YulIdentifier",
                                    "src": "33078:7:81"
                                  },
                                  {
                                    "name": "x",
                                    "nodeType": "YulIdentifier",
                                    "src": "33087:1:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "div",
                                  "nodeType": "YulIdentifier",
                                  "src": "33074:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "33074:15:81"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "33068:2:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "33068:22:81"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nodeType": "YulIdentifier",
                          "src": "33054:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33054:37:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "33047:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33047:45:81"
                  },
                  "nodeType": "YulIf",
                  "src": "33044:71:81"
                }
              ]
            },
            "name": "checked_mul_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "32984:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "32987:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "product",
                "nodeType": "YulTypedName",
                "src": "32993:7:81",
                "type": ""
              }
            ],
            "src": "32953:168:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33158:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33175:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33182:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33187:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "33178:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33178:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33168:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33168:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33168:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33215:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33218:4:81",
                        "type": "",
                        "value": "0x12"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33208:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33208:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33208:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33239:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33242:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "33232:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33232:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33232:15:81"
                }
              ]
            },
            "name": "panic_error_0x12",
            "nodeType": "YulFunctionDefinition",
            "src": "33126:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33304:171:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "33335:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33356:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "33363:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "33368:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "33359:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "33359:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "33349:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33349:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33349:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33400:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33403:4:81",
                              "type": "",
                              "value": "0x12"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "33393:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33393:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33393:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33428:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33431:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "33421:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33421:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33421:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "33324:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "33317:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33317:9:81"
                  },
                  "nodeType": "YulIf",
                  "src": "33314:132:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33455:14:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "33464:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "33467:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nodeType": "YulIdentifier",
                      "src": "33460:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33460:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nodeType": "YulIdentifier",
                      "src": "33455:1:81"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "33289:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "33292:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nodeType": "YulTypedName",
                "src": "33298:1:81",
                "type": ""
              }
            ],
            "src": "33258:217:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33654:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33671:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33682:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33664:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33664:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33664:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "33705:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33716:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33701:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33701:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33721:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33694:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33694:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33694:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "33744:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33755:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33740:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33740:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "33760:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33733:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33733:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33733:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33804:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33816:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33827:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33812:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33812:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "33804:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "33631:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "33645:4:81",
                "type": ""
              }
            ],
            "src": "33480:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34015:169:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34032:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34043:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34025:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34025:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34025:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34066:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34077:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34062:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34062:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34082:2:81",
                        "type": "",
                        "value": "19"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34055:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34055:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34055:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34105:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34116:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34101:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34101:18:81"
                      },
                      {
                        "hexValue": "546f6f206d616e7920657874656e73696f6e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34121:21:81",
                        "type": "",
                        "value": "Too many extensions"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34094:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34094:49:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34094:49:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34152:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34164:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34175:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34160:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34160:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34152:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_21f6ef9796c821924c8451552637a275db9d13fc80db87bcd51e231390e84cc3__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "33992:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34006:4:81",
                "type": ""
              }
            ],
            "src": "33841:343:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34235:151:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "34245:16:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "34255:6:81",
                    "type": "",
                    "value": "0xffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "34249:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "34270:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "34289:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "34296:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "34285:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34285:14:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "34274:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "34327:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "34329:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34329:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34329:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "34314:7:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "34323:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "34311:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34311:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "34308:41:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34358:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "34369:7:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34378:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34365:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34365:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "34358:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint16",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "34217:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "34227:3:81",
                "type": ""
              }
            ],
            "src": "34189:197:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34565:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34582:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34593:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34575:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34575:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34575:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34616:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34627:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34612:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34612:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34632:2:81",
                        "type": "",
                        "value": "43"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34605:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34605:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34605:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34655:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34666:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34651:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34651:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34671:34:81",
                        "type": "",
                        "value": "Initializable: contract is not i"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34644:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34644:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34644:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34726:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34737:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34722:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34722:18:81"
                      },
                      {
                        "hexValue": "6e697469616c697a696e67",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34742:13:81",
                        "type": "",
                        "value": "nitializing"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34715:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34715:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34715:41:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34765:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34777:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34788:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34773:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34773:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34765:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "34542:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34556:4:81",
                "type": ""
              }
            ],
            "src": "34391:407:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34977:175:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34994:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35005:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34987:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34987:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34987:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35028:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35039:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35024:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35024:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35044:2:81",
                        "type": "",
                        "value": "25"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35017:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35017:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35017:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35067:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35078:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35063:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35063:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35083:27:81",
                        "type": "",
                        "value": "ERC721: approve to caller"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35056:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35056:55:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35056:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35120:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35132:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35143:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35128:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35128:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "35120:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "34954:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34968:4:81",
                "type": ""
              }
            ],
            "src": "34803:349:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35331:240:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35348:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35359:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35341:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35341:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35341:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35382:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35393:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35378:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35378:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35398:2:81",
                        "type": "",
                        "value": "50"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35371:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35371:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35371:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35421:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35432:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35417:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35417:18:81"
                      },
                      {
                        "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35437:34:81",
                        "type": "",
                        "value": "ERC721: transfer to non ERC721Re"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35410:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35410:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35410:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35492:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35503:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35488:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35488:18:81"
                      },
                      {
                        "hexValue": "63656976657220696d706c656d656e746572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35508:20:81",
                        "type": "",
                        "value": "ceiver implementer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35481:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35481:48:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35481:48:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35538:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35550:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35561:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35546:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35546:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "35538:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "35308:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "35322:4:81",
                "type": ""
              }
            ],
            "src": "35157:414:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35653:114:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "35697:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "35699:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35699:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35699:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "35669:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35677:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "35666:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35666:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "35663:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35728:33:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35744:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "35747:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "35740:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35740:14:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35756:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35736:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35736:25:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "35728:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_array_address_payable_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "35633:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "35644:4:81",
                "type": ""
              }
            ],
            "src": "35576:191:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35847:592:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "35896:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35905:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35908:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "35898:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35898:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35898:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "35875:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "35883:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "35871:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "35871:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "35890:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "35867:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35867:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "35860:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35860:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "35857:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "35921:23:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "35937:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "35931:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35931:13:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "35925:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "35953:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "35963:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "35957:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "35976:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "36051:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "36003:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36003:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "35987:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35987:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "35980:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36064:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "36077:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "36068:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "36096:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "36101:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36089:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36089:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36089:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36113:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "36124:3:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "36129:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36120:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36120:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "36113:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36141:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "36163:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "36175:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "36178:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "36171:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "36171:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36159:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36159:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "36184:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36155:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36155:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "36145:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36215:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36224:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36227:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "36217:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36217:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36217:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "36202:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "36210:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "36199:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36199:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36196:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36240:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "36255:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "36263:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36251:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36251:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "36244:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36331:79:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "36352:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "36363:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "36357:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "36357:10:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "36345:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36345:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36345:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "36381:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "36392:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "36397:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "36388:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36388:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "36381:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "36286:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "36291:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "36283:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36283:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "36299:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "36301:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "36312:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "36317:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "36308:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36308:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "36301:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "36279:3:81",
                    "statements": []
                  },
                  "src": "36275:135:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36419:14:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "36428:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "36419:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "35821:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "35829:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "35837:5:81",
                "type": ""
              }
            ],
            "src": "35772:667:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36600:1069:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36646:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36655:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36658:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "36648:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36648:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36648:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "36621:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36630:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "36617:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36617:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36642:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "36613:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36613:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36610:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36671:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36691:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "36685:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36685:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "36675:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36710:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "36720:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "36714:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36765:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36774:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36777:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "36767:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36767:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36767:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "36753:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "36761:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "36750:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36750:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36747:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36790:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36804:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "36815:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36800:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36800:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "36794:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36870:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36879:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36882:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "36872:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36872:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36872:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "36849:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "36853:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "36845:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "36845:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "36860:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "36841:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36841:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "36834:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36834:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36831:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36895:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "36911:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "36905:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36905:9:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "36899:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36923:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "36933:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "36927:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36946:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "37021:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "36973:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36973:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "36957:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36957:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "36950:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37034:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "37047:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "37038:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "37066:3:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "37071:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37059:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37059:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37059:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37083:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "37094:3:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "37099:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37090:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37090:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "37083:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37111:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "37133:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "37141:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "37144:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "37137:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "37137:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37129:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37129:19:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "37150:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37125:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37125:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "37115:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "37185:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "37194:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "37197:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "37187:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37187:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37187:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "37168:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "37176:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "37165:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37165:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "37162:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37210:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "37225:2:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "37229:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37221:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37221:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "37214:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "37297:154:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "37311:23:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "37330:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "37324:5:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37324:10:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "37315:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "37372:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "37347:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37347:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37347:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "37398:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "37403:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "37391:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37391:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37391:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "37422:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "37433:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "37438:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "37429:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37429:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "37422:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "37252:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "37257:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "37249:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37249:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "37265:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "37267:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "37278:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "37283:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "37274:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37274:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "37267:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "37245:3:81",
                    "statements": []
                  },
                  "src": "37241:210:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37460:15:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "37470:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "37460:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37484:41:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37510:9:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "37521:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37506:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37506:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "37500:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37500:25:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "37488:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "37554:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "37563:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "37566:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "37556:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37556:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37556:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "37540:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "37550:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "37537:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37537:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "37534:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37579:84:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37633:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "37644:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37629:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37629:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "37655:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn_fromMemory",
                      "nodeType": "YulIdentifier",
                      "src": "37589:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37589:74:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "37579:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "36558:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "36569:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "36581:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "36589:6:81",
                "type": ""
              }
            ],
            "src": "36444:1225:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37732:664:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37742:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "37765:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nodeType": "YulIdentifier",
                      "src": "37759:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37759:12:81"
                  },
                  "variables": [
                    {
                      "name": "slotValue",
                      "nodeType": "YulTypedName",
                      "src": "37746:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37780:50:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "37820:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "extract_byte_array_length",
                      "nodeType": "YulIdentifier",
                      "src": "37794:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37794:36:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "37784:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37839:11:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "37849:1:81",
                    "type": "",
                    "value": "1"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "37843:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "37900:126:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "37921:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "slotValue",
                                      "nodeType": "YulIdentifier",
                                      "src": "37930:9:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "37945:3:81",
                                          "type": "",
                                          "value": "255"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "not",
                                        "nodeType": "YulIdentifier",
                                        "src": "37941:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "37941:8:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "and",
                                    "nodeType": "YulIdentifier",
                                    "src": "37926:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "37926:24:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "37914:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "37914:37:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "37914:37:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "37964:52:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "37975:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "length",
                                      "nodeType": "YulIdentifier",
                                      "src": "37984:6:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "name": "length",
                                              "nodeType": "YulIdentifier",
                                              "src": "38006:6:81"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "iszero",
                                            "nodeType": "YulIdentifier",
                                            "src": "37999:6:81"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "37999:14:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "iszero",
                                        "nodeType": "YulIdentifier",
                                        "src": "37992:6:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "37992:22:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nodeType": "YulIdentifier",
                                    "src": "37980:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "37980:35:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "37971:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "37971:45:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "37964:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "37893:133:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37898:1:81",
                        "type": "",
                        "value": "0"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "38042:348:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "38063:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "38066:5:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "38056:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "38056:16:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "38056:16:81"
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "38085:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38095:4:81",
                              "type": "",
                              "value": "0x20"
                            },
                            "variables": [
                              {
                                "name": "_2",
                                "nodeType": "YulTypedName",
                                "src": "38089:2:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "38112:31:81",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "38137:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "_2",
                                  "nodeType": "YulIdentifier",
                                  "src": "38140:2:81"
                                }
                              ],
                              "functionName": {
                                "name": "keccak256",
                                "nodeType": "YulIdentifier",
                                "src": "38127:9:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "38127:16:81"
                            },
                            "variables": [
                              {
                                "name": "dataPos",
                                "nodeType": "YulTypedName",
                                "src": "38116:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "38156:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38165:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "38160:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "38233:111:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "pos",
                                            "nodeType": "YulIdentifier",
                                            "src": "38262:3:81"
                                          },
                                          {
                                            "name": "i",
                                            "nodeType": "YulIdentifier",
                                            "src": "38267:1:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "38258:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "38258:11:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "dataPos",
                                            "nodeType": "YulIdentifier",
                                            "src": "38277:7:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "sload",
                                          "nodeType": "YulIdentifier",
                                          "src": "38271:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "38271:14:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "38251:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "38251:35:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "38251:35:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "38303:27:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dataPos",
                                        "nodeType": "YulIdentifier",
                                        "src": "38318:7:81"
                                      },
                                      {
                                        "name": "_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "38327:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "38314:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "38314:16:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dataPos",
                                      "nodeType": "YulIdentifier",
                                      "src": "38303:7:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "38190:1:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "38193:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "38187:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "38187:13:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "38201:19:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "38203:15:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "38212:1:81"
                                      },
                                      {
                                        "name": "_2",
                                        "nodeType": "YulIdentifier",
                                        "src": "38215:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "38208:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "38208:10:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "38203:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "38183:3:81",
                              "statements": []
                            },
                            "src": "38179:165:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "38357:23:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "38368:3:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "38373:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "38364:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "38364:16:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "38357:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "38035:355:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38040:1:81",
                        "type": "",
                        "value": "1"
                      }
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "37870:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "37881:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "37866:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37866:18:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "37859:531:81"
                }
              ]
            },
            "name": "abi_encode_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "37709:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "37716:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "37724:3:81",
                "type": ""
              }
            ],
            "src": "37674:722:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38582:96:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "38592:80:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "38625:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "38659:6:81"
                          },
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "38667:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "abi_encode_string_storage",
                          "nodeType": "YulIdentifier",
                          "src": "38633:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38633:38:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "38599:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38599:73:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "38592:3:81"
                    }
                  ]
                }
              ]
            },
            "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": "38550:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "38555:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "38563:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "38574:3:81",
                "type": ""
              }
            ],
            "src": "38401:277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38774:558:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "38820:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38829:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38832:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "38822:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "38822:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "38822:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "38795:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38804:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "38791:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38791:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38816:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "38787:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38787:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38784:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "38845:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38865:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "38859:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38859:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "38849:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "38918:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38927:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38930:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "38920:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "38920:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "38920:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "38890:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38898:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "38887:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38887:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38884:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "38943:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38957:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "38968:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "38953:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38953:22:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "38947:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39023:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39032:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39035:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "39025:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39025:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39025:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "39002:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "39006:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "38998:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "38998:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "39013:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "38994:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38994:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "38987:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38987:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38984:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39048:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39064:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "39058:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39058:9:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "39052:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39076:62:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "39134:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_string",
                          "nodeType": "YulIdentifier",
                          "src": "39105:28:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39105:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "39089:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39089:49:81"
                  },
                  "variables": [
                    {
                      "name": "array",
                      "nodeType": "YulTypedName",
                      "src": "39080:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "array",
                        "nodeType": "YulIdentifier",
                        "src": "39154:5:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "39161:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39147:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39147:17:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39147:17:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39210:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39219:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39222:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "39212:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39212:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39212:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "39187:2:81"
                              },
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "39191:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "39183:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "39183:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39196:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39179:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39179:20:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "39201:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "39176:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39176:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "39173:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "39274:2:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39278:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39270:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39270:11:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "array",
                            "nodeType": "YulIdentifier",
                            "src": "39287:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39294:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39283:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39283:14:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "39299:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "39235:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39235:67:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39235:67:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39311:15:81",
                  "value": {
                    "name": "array",
                    "nodeType": "YulIdentifier",
                    "src": "39321:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "39311:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "38740:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "38751:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "38763:6:81",
                "type": ""
              }
            ],
            "src": "38683:649:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39521:205:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39531:48:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "39567:6:81"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "39575:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "39541:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39541:38:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "39535:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39588:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "39608:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "39602:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39602:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "39592:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "39663:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39671:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39659:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39659:17:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39678:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "39682:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "39624:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39624:65:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39624:65:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39698:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39709:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "39713:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "39705:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39705:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "39698:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "39489:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "39494:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "39502:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "39513:3:81",
                "type": ""
              }
            ],
            "src": "39337:389:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39905:180:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39922:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39933:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39915:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39915:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39915:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39956:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39967:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39952:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39952:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39972:2:81",
                        "type": "",
                        "value": "30"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39945:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39945:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39945:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39995:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40006:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39991:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39991:18:81"
                      },
                      {
                        "hexValue": "43726561746f72436f72653a20496e76616c696420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40011:32:81",
                        "type": "",
                        "value": "CreatorCore: Invalid extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39984:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39984:60:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39984:60:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40053:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40065:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40076:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40061:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40061:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40053:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_2d7d7215e277fb812fad4601df1b9ac85cd358bdd281ae38c601df8cd0f402b5__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "39882:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "39896:4:81",
                "type": ""
              }
            ],
            "src": "39731:354:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40264:165:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40281:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40292:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40274:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40274:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40274:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40315:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40326:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40311:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40311:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40331:2:81",
                        "type": "",
                        "value": "15"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40304:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40304:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40304:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40354:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40365:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40350:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40350:18:81"
                      },
                      {
                        "hexValue": "496e76616c69642061646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40370:17:81",
                        "type": "",
                        "value": "Invalid address"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40343:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40343:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40343:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40397:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40409:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40420:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40405:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40405:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40397:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "40241:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "40255:4:81",
                "type": ""
              }
            ],
            "src": "40090:339:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40608:173:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40625:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40636:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40618:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40618:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40618:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40659:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40670:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40655:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40655:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40675:2:81",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40648:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40648:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40648:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40698:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40709:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40694:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40694:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f74616c20726f79616c74696573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40714:25:81",
                        "type": "",
                        "value": "Invalid total royalties"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40687:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40687:53:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40687:53:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40749:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40761:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40772:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40757:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40757:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40749:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_bdeae8abc7e2f0e6881f3618c066b1b8be917729ca4a34e4ef407f79dd9f7a90__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "40585:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "40599:4:81",
                "type": ""
              }
            ],
            "src": "40434:347:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40864:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40910:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40919:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40922:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40912:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40912:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40912:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "40885:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40894:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "40881:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40881:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40906:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "40877:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40877:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40874:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40935:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40961:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "40948:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40948:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "40939:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "41005:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "40980:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40980:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40980:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41020:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "41030:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "41020:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_payable",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "40830:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "40841:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "40853:6:81",
                "type": ""
              }
            ],
            "src": "40786:255:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41203:218:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "41213:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41225:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41236:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41221:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41221:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "41213:4:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41248:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41266:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41271:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "41262:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41262:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41275:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "41258:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41258:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "41252:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41293:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "41308:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "41316:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "41304:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41304:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41286:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41286:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41286:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41340:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41351:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41336:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41336:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "41360:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "41368:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "41356:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41356:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41329:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41329:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41329:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41392:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41403:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41388:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41388:18:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "41408:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41381:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41381:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41381:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "41156:9:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "41167:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "41175:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "41183:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "41194:4:81",
                "type": ""
              }
            ],
            "src": "41046:375:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41475:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "41485:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "41497:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "41500:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "41493:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41493:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "41485:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41526:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "41528:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41528:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41528:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "41517:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "41523:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "41514:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41514:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41511:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "41457:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "41460:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "41466:4:81",
                "type": ""
              }
            ],
            "src": "41426:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41591:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41608:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41615:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41620:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "41611:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41611:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41601:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41601:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41601:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41648:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41651:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41641:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41641:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41641:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41672:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41675:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "41665:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41665:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41665:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "41559:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41865:156:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41882:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41893:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41875:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41875:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41875:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41916:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41927:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41912:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41912:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41932:1:81",
                        "type": "",
                        "value": "7"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41905:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41905:29:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41905:29:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41954:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41965:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41950:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41950:18:81"
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "41970:9:81",
                        "type": "",
                        "value": "Invalid"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41943:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41943:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41943:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41989:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42001:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42012:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41997:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41997:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "41989:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "41842:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "41856:4:81",
                "type": ""
              }
            ],
            "src": "41691:330:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42229:286:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42239:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42257:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42262:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "42253:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42253:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42266:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "42249:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42249:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "42243:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42284:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "42299:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "42307:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "42295:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42295:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42277:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42277:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42277:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42331:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42342:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42327:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42327:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "42351:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "42359:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "42347:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42347:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42320:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42320:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42320:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42383:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42394:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42379:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42379:18:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "42399:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42372:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42372:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42372:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42426:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42437:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42422:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42422:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42442:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42415:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42415:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42415:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42455:54:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "42481:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42493:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42504:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42489:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42489:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "42463:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42463:46:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "42455:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42174:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "42185:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "42193:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "42201:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "42209:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "42220:4:81",
                "type": ""
              }
            ],
            "src": "42026:489:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42600:169:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42646:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42655:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42658:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "42648:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42648:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42648:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "42621:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42630:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "42617:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42617:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42642:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "42613:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42613:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "42610:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42671:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42690:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "42684:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42684:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "42675:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "42733:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "42709:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42709:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42709:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42748:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "42758:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "42748:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42566:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "42577:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "42589:6:81",
                "type": ""
              }
            ],
            "src": "42520:249:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42948:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42965:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42976:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42958:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42958:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42958:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42999:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43010:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42995:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42995:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43015:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42988:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42988:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42988:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43038:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43049:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43034:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43034:18:81"
                      },
                      {
                        "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "43054:34:81",
                        "type": "",
                        "value": "ERC721: mint to the zero address"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43027:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43027:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43027:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43098:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43110:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43121:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43106:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43106:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43098:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42925:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "42939:4:81",
                "type": ""
              }
            ],
            "src": "42774:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43309:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43326:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43337:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43319:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43319:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43319:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43360:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43371:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43356:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43356:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43376:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43349:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43349:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43349:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43399:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43410:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43395:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43395:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "43415:30:81",
                        "type": "",
                        "value": "ERC721: token already minted"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43388:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43388:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43388:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43455:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43467:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43478:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43463:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43463:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43455:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43286:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43300:4:81",
                "type": ""
              }
            ],
            "src": "43135:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43591:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "43601:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43613:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43624:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43609:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43609:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43601:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43643:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "43658:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "43670:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "43675:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "43666:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "43666:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "43654:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43654:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43636:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43636:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43636:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43560:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43571:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43582:4:81",
                "type": ""
              }
            ],
            "src": "43492:202:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43884:271:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "43894:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43906:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43917:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43902:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43902:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43894:4:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "43930:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43948:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43953:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "43944:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43944:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43957:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "43940:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43940:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "43934:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43975:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "43990:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "43998:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "43986:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43986:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43968:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43968:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43968:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44022:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44033:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44018:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44018:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "44042:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44050:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "44038:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44038:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44011:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44011:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44011:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44074:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44085:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44070:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44070:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nodeType": "YulIdentifier",
                            "src": "44094:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44102:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "44090:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44090:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44063:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44063:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44063:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44126:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44137:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44122:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44122:18:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "44142:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44115:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44115:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44115:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_address_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43829:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "43840:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "43848:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "43856:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43864:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43875:4:81",
                "type": ""
              }
            ],
            "src": "43699:456:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44238:167:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "44284:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "44293:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "44296:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "44286:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "44286:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "44286:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "44259:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44268:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "44255:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44255:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44280:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "44251:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44251:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "44248:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44309:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44328:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "44322:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44322:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "44313:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "44369:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "44347:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44347:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44347:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44384:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "44394:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "44384:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "44204:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "44215:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "44227:6:81",
                "type": ""
              }
            ],
            "src": "44160:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44584:176:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44601:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44612:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44594:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44594:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44594:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44635:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44646:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44631:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44631:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44651:2:81",
                        "type": "",
                        "value": "26"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44624:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44624:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44624:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44674:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44685:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44670:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44670:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20617070726f76616c206661696c757265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "44690:28:81",
                        "type": "",
                        "value": "Extension approval failure"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44663:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44663:56:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44663:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44728:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44740:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44751:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "44736:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44736:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "44728:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c3d60d7a20407b9f19afe96408b04a4d7e66044de3966b3dad84a73681c556f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "44561:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "44575:4:81",
                "type": ""
              }
            ],
            "src": "44410:350:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_array_uint256_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\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    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_uint256_dyn(value0, add(headStart, 32))\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_array_address_payable_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_tuple_t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value_1 := calldataload(add(headStart, 64))\n        validator_revert_bool(value_1)\n        value3 := value_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_uint80_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_string(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n    }\n    function abi_decode_available_length_string(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_string(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), src, length)\n        mstore(add(add(array, length), 0x20), 0)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_string(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value2 := value\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_uint16(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        if iszero(eq(value_1, and(value_1, 0xffff))) { revert(0, 0) }\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_uint80__to_t_uint80__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(80, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value3 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_encode_array_address_payable_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_address_payable_dyn(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_address_payable_dyn(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value1, tail_1)\n    }\n    function abi_decode_uint80(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(80, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint80(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_uint80(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"AdminControl: Must be owner or a\")\n        mstore(add(headStart, 96), \"dmin\")\n        tail := add(headStart, 128)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner or approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Nonexistent token\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"No extension for token\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Extension blacklisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r or approved\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint80(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint80(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"Caller is not owner or approved\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"Invalid input\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0cc452069841e70d1cdcec58868ea025555fa12c1e760cb45ef052b3f01f1f1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Cannot blacklist yourself\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"Invalid token\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 64)\n        mstore(headStart, 64)\n        let pos := tail_1\n        mstore(tail_1, value1)\n        pos := add(headStart, 96)\n        let srcPtr := value0\n        let i := 0\n        for { } lt(i, value1) { i := add(i, 1) }\n        {\n            let value := calldataload(srcPtr)\n            validator_revert_address(value)\n            mstore(pos, and(value, sub(shl(160, 1), 1)))\n            let _1 := 0x20\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, 0x20), sub(pos, headStart))\n        mstore(pos, value3)\n        if gt(value3, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length := shl(5, value3)\n        calldatacopy(add(pos, 0x20), value2, length)\n        tail := add(add(pos, length), 0x20)\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5feba5446d49a024c011d96fb2b4cea222ce6e949e033fe53cd137156df8a35f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"Must be registered extension\")\n        tail := add(headStart, 96)\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_74694d19c1b4be9a45fa733d1aaae2782afce905305cd809636e222af28aa3f3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"More than 1 royalty receiver\")\n        tail := add(headStart, 96)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_21f6ef9796c821924c8451552637a275db9d13fc80db87bcd51e231390e84cc3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"Too many extensions\")\n        tail := add(headStart, 96)\n    }\n    function increment_t_uint16(value) -> ret\n    {\n        let _1 := 0xffff\n        let value_1 := and(value, _1)\n        if eq(value_1, _1) { panic_error_0x11() }\n        ret := add(value_1, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function array_allocation_size_array_address_payable_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := dst_1\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function abi_encode_string_storage(value, pos) -> ret\n    {\n        let slotValue := sload(value)\n        let length := extract_byte_array_length(slotValue)\n        let _1 := 1\n        switch and(slotValue, _1)\n        case 0 {\n            mstore(pos, and(slotValue, not(255)))\n            ret := add(pos, mul(length, iszero(iszero(length))))\n        }\n        case 1 {\n            mstore(0, value)\n            let _2 := 0x20\n            let dataPos := keccak256(0, _2)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _2) }\n            {\n                mstore(add(pos, i), sload(dataPos))\n                dataPos := add(dataPos, _1)\n            }\n            ret := add(pos, length)\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        end := abi_encode_string_storage(value1, abi_encode_string_storage(value0, pos))\n    }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := mload(_1)\n        let array := allocate_memory(array_allocation_size_string(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n        value0 := array\n    }\n    function abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := abi_encode_string_storage(value0, pos)\n        let length := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), _1, length)\n        end := add(_1, length)\n    }\n    function abi_encode_tuple_t_stringliteral_2d7d7215e277fb812fad4601df1b9ac85cd358bdd281ae38c601df8cd0f402b5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"CreatorCore: Invalid extension\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Invalid address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_bdeae8abc7e2f0e6881f3618c066b1b8be917729ca4a34e4ef407f79dd9f7a90__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"Invalid total royalties\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 7)\n        mstore(add(headStart, 64), \"Invalid\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"ERC721: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"ERC721: token already minted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_address_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_c3d60d7a20407b9f19afe96408b04a4d7e66044de3966b3dad84a73681c556f2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"Extension approval failure\")\n        tail := add(headStart, 96)\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "305:13394:29:-:0;;;899:1:32;868:32;;305:13394:29;;;;;;;;;-1:-1:-1;1716:1:8;1821:7;:22;421::80;:20;:22::i;:::-;305:13394:29;;5928:279:4;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:4;;216:2:81;5987:66:4;;;198:21:81;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:81;;;338:37;392:19;;5987:66:4;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:4;6128:15;6113:30;;;;;;6162:28;;564:36:81;;;6162:28:4;;552:2:81;537:18;6162:28:4;;;;;;;6063:138;5928:279::o;422:184:81:-;305:13394:29;;;;;;",
  "deployedSourceMap": "305:13394:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;725:322;;;;;;:::i;:::-;;:::i;:::-;;;565:14:81;;558:22;540:41;;528:2;513:18;725:322:29;;;;;;;;2095:126;;;;;;:::i;:::-;;:::i;:::-;;2243:98:78;;;:::i;:::-;;;;;;;:::i;3031:167::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2564:406::-;;;;;;:::i;:::-;;:::i;12293:194:29:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4059:134::-;;;;;;:::i;:::-;;:::i;10804:260::-;;;;;;:::i;:::-;;:::i;13281:115:32:-;13369:20;;-1:-1:-1;;;;;13369:20:32;13281:115;;9710:362:29;;;;;;:::i;:::-;;:::i;3706:324:78:-;;;;;;:::i;:::-;;:::i;2025:137:1:-;;;;;;:::i;:::-;;:::i;6778:169:29:-;;;;;;:::i;:::-;;:::i;:::-;;;5849:25:81;;;5837:2;5822:18;6778:169:29;5703:177:81;12557:222:29;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1757:205:1:-;;;;;;:::i;:::-;;:::i;3679:116:29:-;;;;;;:::i;:::-;;:::i;1303:205::-;;;;;;:::i;:::-;;:::i;1156:261:1:-;;;:::i;:::-;;;;;;;:::i;10538:199:29:-;;;;;;:::i;:::-;;:::i;8053:457::-;;;;;;:::i;:::-;;:::i;2300:155::-;;;;;;:::i;:::-;;:::i;1580:239::-;;;;;;:::i;:::-;;:::i;8589:458::-;;;;;;:::i;:::-;;:::i;4096:179:78:-;;;;;;:::i;:::-;;:::i;10137:334:29:-;;;;;;:::i;:::-;;:::i;503:155::-;;;;;;:::i;:::-;;:::i;13105:130::-;;;;;;:::i;:::-;;:::i;3264:345::-;;;;;;:::i;:::-;;:::i;1954:227:78:-;;;;;;:::i;:::-;;:::i;2790:158:29:-;;;;;;:::i;:::-;;:::i;1485:205:1:-;;;;;;:::i;:::-;;:::i;1693:204:78:-;;;;;;:::i;:::-;;:::i;2071:101:3:-;;;:::i;4874:142:29:-;;;;;;:::i;:::-;;:::i;5085:164::-;;;;;;:::i;:::-;;:::i;5794:430::-;;;;;;:::i;:::-;;:::i;2534:175::-;;;;;;:::i;:::-;;:::i;3998:316:32:-;;;:::i;1441:85:3:-;;;:::i;2405:102:78:-;;;:::i;3867:126:29:-;;;;;;:::i;:::-;;:::i;3265:151:78:-;;;;;;:::i;:::-;;:::i;4259:313:29:-;;;;;;:::i;:::-;;:::i;4915:163:32:-;;;;;;:::i;:::-;;:::i;5323:397:29:-;;;;;;:::i;:::-;;:::i;11140:226::-;;;;;;:::i;:::-;;:::i;13568:129::-;;;;;;:::i;:::-;13627:6;13659:19;;;:10;:19;;;;;:24;-1:-1:-1;;;13659:24:29;;13687:2;13659:30;-1:-1:-1;;;;;13659:30:29;;13568:129;;;;-1:-1:-1;;;;;16064:31:81;;;16046:50;;16034:2;16019:18;13568:129:29;15902:200:81;4341:312:78;;;;;;:::i;:::-;;:::i;12011:218:29:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11433:225::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;12846:186::-;;;;;;:::i;:::-;;:::i;1894:128::-;;;;;;:::i;:::-;;:::i;7286:185::-;;;;;;:::i;:::-;;:::i;7550:424::-;;;;;;:::i;:::-;;:::i;3023:166::-;;;;;;:::i;:::-;;:::i;3482:162:78:-;;;;;;:::i;:::-;;:::i;4645:160:29:-;;;;;;:::i;:::-;;:::i;2321:198:3:-;;;;;;:::i;:::-;;:::i;7021:191:29:-;;;;;;:::i;:::-;;:::i;552:35:34:-;;586:1;552:35;;725:322:29;866:4;889:48;925:11;889:35;:48::i;:::-;:93;;;;941:41;970:11;941:28;:41::i;:::-;889:151;;;;986:54;1028:11;986:41;:54::i;:::-;882:158;725:322;-1:-1:-1;;725:322:29:o;2095:126::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;;;;;;;;;2184:30:29::1;2204:9;2184:19;:30::i;:::-;2095:126:::0;:::o;2243:98:78:-;2297:13;2329:5;2322:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:98;:::o;3031:167::-;3107:7;3126:23;3141:7;3126:14;:23::i;:::-;-1:-1:-1;3167:24:78;;;;:15;:24;;;;;;-1:-1:-1;;;;;3167:24:78;;3031:167::o;2564:406::-;2644:13;2660:27;2679:7;2660:18;:27::i;:::-;2644:43;;2711:5;-1:-1:-1;;;;;2705:11:78;:2;-1:-1:-1;;;;;2705:11:78;;2697:57;;;;-1:-1:-1;;;2697:57:78;;20050:2:81;2697:57:78;;;20032:21:81;20089:2;20069:18;;;20062:30;20128:34;20108:18;;;20101:62;-1:-1:-1;;;20179:18:81;;;20172:31;20220:19;;2697:57:78;19848:397:81;2697:57:78;2786:10;-1:-1:-1;;;;;2786:19:78;;;;:58;;;2809:35;2826:5;2833:10;2809:16;:35::i;:::-;2765:166;;;;-1:-1:-1;;;2765:166:78;;20452:2:81;2765:166:78;;;20434:21:81;20491:2;20471:18;;;20464:30;20530:34;20510:18;;;20503:62;20601:31;20581:18;;;20574:59;20650:19;;2765:166:78;20250:425:81;2765:166:78;2942:21;2951:2;2955:7;2942:8;:21::i;:::-;2634:336;2564:406;;:::o;12293:194:29:-;12369:13;12402:16;12410:7;12402;:16::i;:::-;12394:46;;;;-1:-1:-1;;;12394:46:29;;;;;;;:::i;:::-;12457:23;12472:7;12457:14;:23::i;4059:134::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;4160:26:29::1;4173:7;4182:3;;4160:12;:26::i;10804:260::-:0;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;10963:16:29::1;10971:7;10963;:16::i;:::-;10955:46;;;;-1:-1:-1::0;;;10955:46:29::1;;;;;;;:::i;:::-;11011;11025:7;11034:9;;11045:11;;11011:13;:46::i;:::-;10804:260:::0;;;;;:::o;9710:362::-;9789:17;9826:16;9834:7;9826;:16::i;:::-;9818:46;;;;-1:-1:-1;;;9818:46:29;;;;;;;:::i;:::-;9886:24;9902:7;9886:15;:24::i;:::-;9874:36;-1:-1:-1;;;;;;9928:23:29;;9920:58;;;;-1:-1:-1;;;9920:58:29;;21228:2:81;9920:58:29;;;21210:21:81;21267:2;21247:18;;;21240:30;-1:-1:-1;;;21286:18:81;;;21279:52;21348:18;;9920:58:29;21026:346:81;9920:58:29;9997:42;:22;10029:9;9997:31;:42::i;:::-;9996:43;9988:77;;;;-1:-1:-1;;;9988:77:29;;;;;;;:::i;:::-;9710:362;;;:::o;3706:324:78:-;3895:39;3914:10;3926:7;3895:18;:39::i;:::-;3887:97;;;;-1:-1:-1;;;3887:97:78;;;;;;;:::i;:::-;3995:28;4005:4;4011:2;4015:7;3995:9;:28::i;2025:137:1:-;2087:4;2122:5;-1:-1:-1;;;;;2111:16:1;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2111:16:1;;:43;;;-1:-1:-1;2131:23:1;:7;2148:5;2131:16;:23::i;6778:169:29:-;6858:7;2261:21:8;:19;:21::i;:::-;6877:18:29::1;:16;:18::i;:::-;6912:28;6927:2;6912:28;;;;;;;;;;;::::0;6935:1:::1;6938::::0;6912:14:::1;:28::i;:::-;6905:35;;2303:20:8::0;1716:1;2809:7;:22;2629:209;12557:222:29;12650:7;12659;12686:16;12694:7;12686;:16::i;:::-;12678:46;;;;-1:-1:-1;;;12678:46:29;;;;;;;:::i;:::-;12741:31;12757:7;12766:5;12741:15;:31::i;:::-;12734:38;;;;12557:222;;;;;;:::o;1757:205:1:-;1334:13:3;:11;:13::i;:::-;1835:23:1::1;:7;1852:5:::0;1835:16:::1;:23::i;:::-;1831:125;;;1879:31;::::0;1899:10:::1;::::0;-1:-1:-1;;;;;1879:31:1;::::1;::::0;::::1;::::0;;;::::1;1924:21;:7;1939:5:::0;1924:14:::1;:21::i;:::-;;1757:205:::0;:::o;3679:116:29:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;3767:21:29::1;3784:3;;3767:16;:21::i;1303:205::-:0;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;1416:30:29::1;1436:9;1416:19;:30::i;:::-;1456:45;1475:9;1486:7;;1495:5;1456:18;:45::i;1156:261:1:-:0;1209:23;1267:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1253:31:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1253:31:1;;1244:40;;1299:6;1294:94;1315:16;:7;:14;:16::i;:::-;1311:1;:20;1294:94;;;1364:13;:7;1375:1;1364:10;:13::i;:::-;1352:6;1359:1;1352:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1352:25:1;;;:9;;;;;;;;;;;:25;1333:3;;;;:::i;:::-;;;;1294:94;;;;1156:261;:::o;10538:199:29:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;10672:58:29::1;10703:1;10707:9;;10718:11;;10672:22;:58::i;:::-;10538:199:::0;;;;:::o;8053:457::-;8162:25;2261:21:8;:19;:21::i;:::-;8199:18:29::1;:16;:18::i;:::-;8252:4:::0;-1:-1:-1;;;;;8238:26:29;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;8238:26:29::1;;8227:37;;8274:20;8297:11;;8309:1;8297:13;;;;:::i;:::-;8274:36;;8335:4;;:11;;8320;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8362:6:29::1;::::0;-1:-1:-1;8357:147:29::1;8370:15:::0;;::::1;8357:147;;;8416:46;8431:2;8435:4;;8440:1;8435:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8416:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;8416:46:29;-1:-1:-1;8447:14:29::1;::::0;-1:-1:-1;8460:1:29;;-1:-1:-1;8447:12:29;:14:::1;:::i;:::-;8416;:46::i;:::-;8402:8;8411:1;8402:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:60;8488:3:::1;;8357:147;;;;8189:321;2303:20:8::0;1716:1;2809:7;:22;2629:209;2303:20;8053:457:29;;;;;:::o;2300:155::-;2383:18;:16;:18::i;:::-;2411:37;2437:3;;2442:5;2411:25;:37::i;1580:239::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;1716:30:29::1;1736:9;1716:19;:30::i;:::-;1756:56;1775:9;1786:7;;1795:16;1756:18;:56::i;8589:458::-:0;8698:25;2261:21:8;:19;:21::i;:::-;8735:18:29::1;:16;:18::i;:::-;8788:4:::0;-1:-1:-1;;;;;8774:26:29;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;8774:26:29::1;;8763:37;;8810:20;8833:11;;8845:1;8833:13;;;;:::i;:::-;8810:36;;8871:4;;:11;;8856;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8898:6:29::1;::::0;-1:-1:-1;8893:148:29::1;8906:15:::0;;::::1;8893:148;;;8952:47;8967:2;8952:47;;;;;;;;;;;::::0;8975:4:::1;;8980:1;8975:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8984:14;8997:1:::0;8984:12;:14:::1;:::i;8952:47::-;8938:8;8947:1;8938:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:61;9025:3:::1;;8893:148;;4096:179:78::0;4229:39;4246:4;4252:2;4256:7;4229:39;;;;;;;;;;;;:16;:39::i;10137:334:29:-;2261:21:8;:19;:21::i;:::-;10223:39:29::1;10242:10;10254:7;10223:18;:39::i;:::-;10215:83;;;::::0;-1:-1:-1;;;10215:83:29;;23593:2:81;10215:83:29::1;::::0;::::1;23575:21:81::0;23632:2;23612:18;;;23605:30;23671:33;23651:18;;;23644:61;23722:18;;10215:83:29::1;23391:355:81::0;10215:83:29::1;10308:13;10324:16;10332:7;10324;:16::i;:::-;10308:32;;10350:17;10370:24;10386:7;10370:15;:24::i;:::-;10350:44;;10404:14;10410:7;10404:5;:14::i;:::-;10428:36;10438:5;10445:7;10454:9;10428;:36::i;:::-;10205:266;;2303:20:8::0;1716:1;2809:7;:22;2629:209;503:155:29;3268:19:4;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:4;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;;3377:44;3415:4;3377:29;:44::i;:::-;3376:45;:66;;;;-1:-1:-1;3425:12:4;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:4;;23953:2:81;3314:201:4;;;23935:21:81;23992:2;23972:18;;;23965:30;24031:34;24011:18;;;24004:62;-1:-1:-1;;;24082:18:81;;;24075:44;24136:19;;3314:201:4;23751:410:81;3314:201:4;3525:12;:16;;-1:-1:-1;;3525:16:4;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:4;;;;;3551:65;596:29:29::1;610:5;617:7;596:13;:29::i;:::-;635:16;:14;:16::i;:::-;3640:14:4::0;3636:99;;;3686:5;3670:21;;-1:-1:-1;;3670:21:4;;;3710:14;;-1:-1:-1;24318:36:81;;3710:14:4;;24306:2:81;24291:18;3710:14:4;;;;;;;3258:483;503:155:29;;:::o;13105:130::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;13194:34:29::1;13218:9;13194:23;:34::i;3264:345::-:0;3375:18;:16;:18::i;:::-;3411:30;;;3403:56;;;;-1:-1:-1;;;3403:56:29;;;;;;;:::i;:::-;3474:6;3469:134;3482:19;;;3469:134;;;3518:43;3540:8;;3549:1;3540:11;;;;;;;:::i;:::-;;;;;;;3553:4;;3558:1;3553:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3518:21;:43::i;:::-;3587:3;;3469:134;;1954:227:78;2026:7;2061:19;;;:10;:19;;;;;:25;-1:-1:-1;;;;;2061:25:78;;2096:56;;;;-1:-1:-1;;;2096:56:78;;;;;;;:::i;2790:158:29:-;2878:18;:16;:18::i;:::-;2906:35;2934:6;;2906:27;:35::i;1485:205:1:-;1334:13:3;:11;:13::i;:::-;1565:23:1::1;:7;1582:5:::0;1565:16:::1;:23::i;:::-;1560:124;;1609:32;::::0;1630:10:::1;::::0;-1:-1:-1;;;;;1609:32:1;::::1;::::0;::::1;::::0;;;::::1;1655:18;:7;1667:5:::0;1655:11:::1;:18::i;1693:204:78:-:0;1765:7;-1:-1:-1;;;;;1792:19:78;;1784:73;;;;-1:-1:-1;;;1784:73:78;;25262:2:81;1784:73:78;;;25244:21:81;25301:2;25281:18;;;25274:30;25340:34;25320:18;;;25313:62;-1:-1:-1;;;25391:18:81;;;25384:39;25440:19;;1784:73:78;25060:405:81;1784:73:78;-1:-1:-1;;;;;;1874:16:78;;;;;:9;:16;;;;;;;1693:204::o;2071:101:3:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;4874:142:29:-;4963:7;2261:21:8;:19;:21::i;:::-;987:10:1::1;976:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;976:21:1::1;;:53;;;-1:-1:-1::0;1001:28:1::1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1::0;;;968:102:1::1;;;;;;;:::i;:::-;4989:20:29::2;4999:2;4989:20;;;;;;;;;;;::::0;5007:1:::2;4989:9;:20::i;5085:164::-:0;5195:7;2261:21:8;:19;:21::i;:::-;987:10:1::1;976:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;976:21:1::1;;:53;;;-1:-1:-1::0;1001:28:1::1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1::0;;;968:102:1::1;;;;;;;:::i;:::-;5221:21:29::2;5231:2;5235:3;;5221:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;-1:-1:-1;5221:21:29;-1:-1:-1;5221:9:29::2;::::0;-1:-1:-1;;5221:21:29:i:2;:::-;5214:28;;2303:20:8::0;1716:1;2809:7;:22;2629:209;5794:430:29;5912:25;2261:21:8;:19;:21::i;:::-;987:10:1::1;976:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;976:21:1::1;;:53;;;-1:-1:-1::0;1001:28:1::1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1::0;;;968:102:1::1;;;;;;;:::i;:::-;5974:4:29::0;-1:-1:-1;;;;;5960:26:29;::::2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;5960:26:29::2;;5949:37;;5996:20;6019:11;;6031:1;6019:13;;;;:::i;:::-;5996:36;;6057:4;;:11;;6042;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;6084:6:29::2;::::0;-1:-1:-1;6079:139:29::2;6092:15:::0;;::::2;6079:139;;;6138:38;6148:2;6152:4;;6157:1;6152:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;6138:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;6161:14:29::2;::::0;-1:-1:-1;6174:1:29;;-1:-1:-1;6161:12:29;;-1:-1:-1;6161:14:29::2;:::i;:::-;6138:9;:38::i;:::-;6124:8;6133:1;6124:11;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;:52;6202:3:::2;;6079:139;;2534:175:::0;2633:18;:16;:18::i;:::-;2661:41;2687:3;;2692:9;2661:25;:41::i;3998:316:32:-;4055:27;4121:20;:11;:18;:20::i;:::-;-1:-1:-1;;;;;4107:35:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4107:35:32;;4094:48;;4157:6;4152:129;4169:20;:11;:18;:20::i;:::-;4165:1;:24;4152:129;;;4222:17;:11;4237:1;4222:14;:17::i;:::-;4206:10;4217:1;4206:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4206:33:32;;;:13;;;;;;;;;;;:33;4265:3;;4152:129;;1441:85:3;1513:6;;-1:-1:-1;;;;;1513:6:3;;1441:85::o;2405:102:78:-;2461:13;2493:7;2486:14;;;;;:::i;3867:126:29:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;3960:26:29::1;3979:6;;3960:18;:26::i;3265:151:78:-:0;3359:50;3378:10;3390:8;3400;3359:18;:50::i;4259:313:29:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;4383:30:29;;::::1;4375:56;;;;-1:-1:-1::0;;;4375:56:29::1;;;;;;;:::i;:::-;4446:6;4441:125;4454:19:::0;;::::1;4441:125;;;4490:34;4503:8;;4512:1;4503:11;;;;;;;:::i;:::-;;;;;;;4516:4;;4521:1;4516:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4490:12;:34::i;:::-;4550:3;;4441:125;;4915:163:32::0;4994:18;:16;:18::i;:::-;5022:49;5051:10;5063:7;5022:28;:49::i;5323:397:29:-;5431:25;2261:21:8;:19;:21::i;:::-;987:10:1::1;976:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;976:21:1::1;;:53;;;-1:-1:-1::0;1001:28:1::1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1::0;;;968:102:1::1;;;;;;;:::i;:::-;5493:5:29::2;5479:20;;-1:-1:-1::0;;;;;5479:20:29::2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;5479:20:29::2;;5468:31;;5509:20;5532:11;;5544:1;5532:13;;;;:::i;:::-;5509:36;;5570:5;5555:20;;:11;;:20;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;5591:6:29::2;::::0;-1:-1:-1;5586:128:29::2;5603:5;5599:9;;:1;:9;5586:128;;;5639:33;5649:2;5639:33;;;;;;;;;;;::::0;5670:1:::2;5657:12;:14;;;;:::i;5639:33::-;5625:8;5634:1;5625:11;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;:47;5698:3:::2;;5586:128;;;;5458:262;2303:20:8::0;1716:1;2809:7;:22;2629:209;11140:226:29;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;11302:57:29::1;11325:9;11336;;11347:11;;11302:22;:57::i;4341:312:78:-:0;4509:39;4528:10;4540:7;4509:18;:39::i;:::-;4501:97;;;;-1:-1:-1;;;4501:97:78;;;;;;;:::i;:::-;4608:38;4622:4;4628:2;4632:7;4641:4;4608:13;:38::i;12011:218:29:-;12094:24;12138:16;12146:7;12138;:16::i;:::-;12130:46;;;;-1:-1:-1;;;12130:46:29;;;;;;;:::i;:::-;12193:29;12214:7;12193:20;:29::i;11433:225::-;11512:24;11538:16;11574;11582:7;11574;:16::i;:::-;11566:46;;;;-1:-1:-1;;;11566:46:29;;;;;;;:::i;:::-;11629:22;11643:7;11629:13;:22::i;:::-;11622:29;;;;11433:225;;;:::o;12846:186::-;12919:13;12952:16;12960:7;12952;:16::i;:::-;12944:46;;;;-1:-1:-1;;;12944:46:29;;;;;;;:::i;:::-;13007:18;13017:7;13007:9;:18::i;1894:128::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;1984:31:29::1;2005:9;1984:20;:31::i;7286:185::-:0;7379:7;2261:21:8;:19;:21::i;:::-;7398:18:29::1;:16;:18::i;:::-;7433:31;7448:2;7433:31;;;;;;;;;;;::::0;7456:4:::1;7462:1;7433:14;:31::i;:::-;7426:38;;2303:20:8::0;1716:1;2809:7;:22;2629:209;7550:424:29;7649:25;2261:21:8;:19;:21::i;:::-;7686:18:29::1;:16;:18::i;:::-;7739:5;7725:20;;-1:-1:-1::0;;;;;7725:20:29::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;7725:20:29::1;;7714:31;;7755:20;7778:11;;7790:1;7778:13;;;;:::i;:::-;7755:36;;7816:5;7801:20;;:11;;:20;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;7837:6:29::1;::::0;-1:-1:-1;7832:136:29::1;7849:5;7845:9;;:1;:9;7832:136;;;7885:41;7900:2;7885:41;;;;;;;;;;;::::0;7908:1:::1;7924;7911:12;:14;;;;:::i;7885:41::-;7871:8;7880:1;7871:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:55;7952:3:::1;;7832:136;;3023:166:::0;3119:18;:16;:18::i;:::-;3147:35;3169:7;3178:3;;3147:21;:35::i;3482:162:78:-;-1:-1:-1;;;;;3602:25:78;;;3579:4;3602:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3482:162::o;4645:160:29:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;4755:43:29::1;4775:9;4786:11;4755:19;:43::i;2321:198:3:-:0;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:3;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:3;;25672:2:81;2401:73:3::1;::::0;::::1;25654:21:81::0;25711:2;25691:18;;;25684:30;25750:34;25730:18;;;25723:62;-1:-1:-1;;;25801:18:81;;;25794:36;25847:19;;2401:73:3::1;25470:402:81::0;2401:73:3::1;2484:28;2503:8;2484:18;:28::i;7021:191:29:-:0;7122:7;2261:21:8;:19;:21::i;:::-;7141:18:29::1;:16;:18::i;:::-;7176:29;7191:2;7195:3;;7176:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;7176:29:29;-1:-1:-1;7176:29:29;;-1:-1:-1;7176:14:29::1;::::0;-1:-1:-1;7176:29:29:i:1;1151:270:34:-:0;1258:4;-1:-1:-1;;;;;;1281:51:34;;-1:-1:-1;;;1281:51:34;;:93;;-1:-1:-1;;;;;;;1336:38:34;;-1:-1:-1;;;1336:38:34;1281:93;:133;;;;1378:36;1402:11;1378:23;:36::i;1334:300:78:-;1436:4;-1:-1:-1;;;;;;1471:40:78;;-1:-1:-1;;;1471:40:78;;:104;;-1:-1:-1;;;;;;;1527:48:78;;-1:-1:-1;;;1527:48:78;1471:156;;;;1591:36;1615:11;610:230:1;712:4;-1:-1:-1;;;;;;735:46:1;;-1:-1:-1;;;735:46:1;;:98;;-1:-1:-1;;;;;;;;;;937:40:19;;;797:36:1;829:155:19;8852:165:23;-1:-1:-1;;;;;8985:23:23;;8932:4;4343:19;;;:12;;;:19;;;;;;:24;;8955:55;4247:127;5571:501:32;-1:-1:-1;;;;;5645:23:32;;;;;;:53;;-1:-1:-1;;;;;;5672:26:32;;5693:4;5672:26;;5645:53;5637:91;;;;-1:-1:-1;;;5637:91:32;;26079:2:81;5637:91:32;;;26061:21:81;26118:2;26098:18;;;26091:30;-1:-1:-1;;;26137:18:81;;;26130:55;26202:18;;5637:91:32;25877:349:81;5637:91:32;5741:31;:11;5762:9;5741:20;:31::i;:::-;5737:151;;;5792:44;;5825:10;;-1:-1:-1;;;;;5792:44:32;;;;;;;;5849:29;:11;5868:9;5849:18;:29::i;:::-;;5737:151;5901:42;:22;5933:9;5901:31;:42::i;:::-;5896:170;;5963:43;;5995:10;;-1:-1:-1;;;;;5963:43:32;;;;;;;;6019:37;:22;6046:9;6019:26;:37::i;11742:133:78:-;11823:16;11831:7;11823;:16::i;:::-;11815:53;;;;-1:-1:-1;;;11815:53:78;;;;;;;:::i;11040:175::-;11114:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11114:29:78;-1:-1:-1;;;;;11114:29:78;;;;;;;;:24;;11167:27;11114:24;11167:18;:27::i;:::-;-1:-1:-1;;;;;11158:50:78;;;;;;;;;;;11040:175;;:::o;6122:134::-;6187:4;6210:19;;;:10;:19;;;;;:25;-1:-1:-1;;;;;6210:25:78;:39;;;6122:134::o;10341:135:32:-;10405:20;10447:22;10461:7;10447:13;:22::i;7275:226::-;7372:1;7362:7;:11;:37;;;;;7388:11;;7377:7;:22;;7362:37;:79;;;;-1:-1:-1;7439:1:32;7403:24;7419:7;7403:15;:24::i;:::-;-1:-1:-1;;;;;7403:38:32;;7362:79;7354:105;;;;-1:-1:-1;;;7354:105:32;;;;;;;:::i;:::-;7469:19;;;;:10;:19;;;;;:25;7491:3;;7469:19;:25;:::i;10968:348::-;11096:39;11112:9;;11123:11;;11096:15;:39::i;:::-;11152:22;;;;:13;:22;;;;;11145:29;;;:::i;:::-;11184:61;11198:9;;11209:11;;11222:13;:22;11236:7;11222:22;;;;;;;;;;;11184:13;:61::i;:::-;11277:7;11260:49;11286:9;;11297:11;;11260:49;;;;;;;;;:::i;:::-;;;;;;;;10968:348;;;;;:::o;13241:257:29:-;13314:7;13364:19;;;:10;:19;;;;;:24;-1:-1:-1;;;13364:24:29;;-1:-1:-1;;;;;13364:24:29;;;13403:19;;;;13399:42;;-1:-1:-1;13439:1:29;;13241:257;-1:-1:-1;;13241:257:29:o;13399:42::-;13458:33;;;;;;:17;:33;;;;;;-1:-1:-1;;;;;13458:33:29;;13241:257;-1:-1:-1;;13241:257:29:o;6414:265:78:-;6507:4;6523:13;6539:27;6558:7;6539:18;:27::i;:::-;6523:43;;6595:5;-1:-1:-1;;;;;6584:16:78;:7;-1:-1:-1;;;;;6584:16:78;;:52;;;;6604:32;6621:5;6628:7;6604:16;:32::i;:::-;6584:87;;;;6664:7;-1:-1:-1;;;;;6640:31:78;:20;6652:7;6640:11;:20::i;:::-;-1:-1:-1;;;;;6640:31:78;;6584:87;6576:96;6414:265;-1:-1:-1;;;;6414:265:78:o;9735:1193::-;9854:26;9883:19;;;:10;:19;;;;;;;;;9854:48;;;;;;;;;-1:-1:-1;;;;;9854:48:78;;;;;;-1:-1:-1;;;9854:48:78;;;-1:-1:-1;;;;;9854:48:78;;;;;;;;;9961:13;;;;9953:63;;;;-1:-1:-1;;;9953:63:78;;29913:2:81;9953:63:78;;;29895:21:81;29952:2;29932:18;;;29925:30;29991:34;29971:18;;;29964:62;-1:-1:-1;;;30042:18:81;;;30035:35;30087:19;;9953:63:78;29711:401:81;9953:63:78;-1:-1:-1;;;;;10034:16:78;;10026:65;;;;-1:-1:-1;;;10026:65:78;;30319:2:81;10026:65:78;;;30301:21:81;30358:2;30338:18;;;30331:30;30397:34;30377:18;;;30370:62;-1:-1:-1;;;30448:18:81;;;30441:34;30492:19;;10026:65:78;30117:400:81;10026:65:78;10116:14;;;;10141:45;10162:4;10168:2;10172:7;10116:14;10141:20;:45::i;:::-;10248:29;10265:1;10269:7;10248:8;:29::i;:::-;-1:-1:-1;;;;;10721:15:78;;;;;;;:9;:15;;;;;;;;:20;;-1:-1:-1;;10721:20:78;;;10755:13;;;;;;;;;:18;;10740:1;10755:18;;;10793:19;;;:10;:19;;;;;;:30;;-1:-1:-1;;;;;;10793:30:78;;;;;10839:27;;10804:7;;10755:13;10721:15;-1:-1:-1;;;;;;;;;;;10839:27:78;;10877:44;9844:1084;;;9735:1193;;;:::o;2336:287:8:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:8;;30724:2:81;2460:63:8;;;30706:21:81;30763:2;30743:18;;;30736:30;30802:33;30782:18;;;30775:61;30853:18;;2460:63:8;30522:355:81;2460:63:8;1759:1;2598:7;:18;2336:287::o;3566:132:32:-;3626:32;:11;3647:10;3626:20;:32::i;:::-;3618:73;;;;-1:-1:-1;;;3618:73:32;;31084:2:81;3618:73:32;;;31066:21:81;31123:2;31103:18;;;31096:30;-1:-1:-1;;;31142:18:81;;;31135:58;31210:18;;3618:73:32;30882:352:81;9110:525:29;9220:7;9243;9254:1;9243:12;9239:91;;9273:11;;9271:13;;;;;:::i;:::-;;;;-1:-1:-1;9308:11:29;;;-1:-1:-1;9239:91:29;9340:34;9362:2;9366:7;9340:21;:34::i;:::-;9504:10;9486:29;;;;:17;:29;;;;;;9450:66;;9460:2;;9464:7;;9486:29;;9481:2;9473:10;;;9450:66;;;:9;:66::i;:::-;9531:17;;:21;9527:77;;9568:19;;;;:10;:19;;;;;:25;9590:3;9568:19;:25;:::i;:::-;;9527:77;-1:-1:-1;9621:7:29;9110:525;-1:-1:-1;;;9110:525:29:o;10482:431:32:-;10562:16;10580:14;10606:34;10642:20;10666:22;10680:7;10666:13;:22::i;:::-;10605:83;;;;10726:1;10706:9;:16;:21;;10698:62;;;;-1:-1:-1;;;10698:62:32;;32798:2:81;10698:62:32;;;32780:21:81;32837:2;32817:18;;;32810:30;-1:-1:-1;;;32856:18:81;;;32849:58;32924:18;;10698:62:32;32596:352:81;10698:62:32;10783:9;:16;10803:1;10783:21;10779:77;;10836:4;10843:1;10820:25;;;;;;;;10779:77;10873:9;10883:1;10873:12;;;;;;;;:::i;:::-;;;;;;;10900:5;10894;10887:3;10891:1;10887:6;;;;;;;;:::i;:::-;;;;;;;:12;;;;:::i;:::-;:18;;;;:::i;:::-;10865:41;;;;;;10482:431;;;;;:::o;1599:130:3:-;929:10:6;1662:7:3;:5;:7::i;:::-;-1:-1:-1;;;;;1662:23:3;;1654:68;;;;-1:-1:-1;;;1654:68:3;;33682:2:81;1654:68:3;;;33664:21:81;;;33701:18;;;33694:30;33760:34;33740:18;;;33733:62;33812:18;;1654:68:3;33480:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::i;6886:108:32:-;6952:29;;;:17;:29;;;:35;6984:3;;6952:29;:35;:::i;3771:156::-;3852:42;:22;3884:9;3852:31;:42::i;:::-;3851:43;3843:77;;;;-1:-1:-1;;;3843:77:32;;;;;;;:::i;5078:476:34:-;5209:17;;5229:6;5209:17;;;:26;5201:58;;;;-1:-1:-1;;;5201:58:34;;34043:2:81;5201:58:34;;;34025:21:81;34082:2;34062:18;;;34055:30;-1:-1:-1;;;34101:18:81;;;34094:49;34160:18;;5201:58:34;33841:343:81;5201:58:34;-1:-1:-1;;;;;5273:28:34;;;;;;:17;:28;;;;;;;;:33;;5269:207;;5324:17;5322:19;;5324:17;;5322:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5386:17;;;-1:-1:-1;;;;;5355:28:34;;-1:-1:-1;5355:28:34;;;:17;:28;;;;;;;;:48;;5386:17;;;-1:-1:-1;;5355:48:34;;;;;;;;;;5435:17;;;;;5417:36;;:17;:36;;;;;;:48;;-1:-1:-1;;;;;;5417:48:34;;;;;;5269:207;5485:62;5510:9;5521:7;;5530:16;5485:24;:62::i;9098:115:23:-;9161:7;9187:19;9195:3;4537:18;;4455:107;9555:156;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;11390:519:32:-;11530:39;11546:9;;11557:11;;11530:15;:39::i;:::-;-1:-1:-1;;;;;11586:28:32;;;;;;:17;:28;;;;;11579:35;;;:::i;:::-;11624:67;11638:9;;11649:11;;11662:17;:28;11680:9;-1:-1:-1;;;;;11662:28:32;-1:-1:-1;;;;;11662:28:32;;;;;;;;;;;;11624:13;:67::i;:::-;-1:-1:-1;;;;;11705:23:32;;11701:202;;11749:47;11773:9;;11784:11;;11749:47;;;;;;;;;:::i;:::-;;;;;;;;11701:202;;;11858:9;-1:-1:-1;;;;;11832:60:32;;11869:9;;11880:11;;11832:60;;;;;;;;;:::i;6142:193::-;6251:10;6233:29;;;;:17;:29;;;;;:35;6265:3;;6233:29;:35;:::i;:::-;-1:-1:-1;6305:10:32;6278:38;;;;:26;:38;;;;;:50;;-1:-1:-1;;6278:50:32;;;;;;;;;;-1:-1:-1;;6142:193:32:o;8687:724:78:-;8746:26;8775:19;;;:10;:19;;;;;;;;8746:48;;;;;;;;;-1:-1:-1;;;;;8746:48:78;;;;;-1:-1:-1;;;8746:48:78;;;-1:-1:-1;;;;;8746:48:78;;;;;;;;;;;;8884:54;;8746:48;;8775:19;8746:48;8884:20;:54::i;:::-;8976:29;8993:1;8997:7;8976:8;:29::i;:::-;-1:-1:-1;;;;;9221:16:78;;;;;;:9;:16;;;;;;;;:21;;-1:-1:-1;;9221:21:78;;;9269:19;;;:10;:19;;;;;;9262:26;;;9304:36;9280:7;;9221:16;-1:-1:-1;;;;;;;;;;;9304:36:78;9221:16;;9304:36;9351:53;10538:199:29;3271:545:34;-1:-1:-1;;;;;3427:23:34;;;3423:247;;3469:93;3501:9;-1:-1:-1;;;3469:31:34;:93::i;:::-;3465:195;;;3581:65;;-1:-1:-1;;;3581:65:34;;-1:-1:-1;;;;;3581:49:34;;;;;:65;;3631:5;;3638:7;;3581:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3465:195;3724:19;;;;:10;:19;;;;;3718:33;;;;;:::i;:::-;:38;;-1:-1:-1;3714:95:34;;3779:19;;;;:10;:19;;;;;3772:26;;;:::i;1186:320:5:-;-1:-1:-1;;;;;1476:19:5;;:23;;;1186:320::o;569:149:80:-;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;672:39:80::1;696:5;703:7;672:23;:39::i;1003:95:3:-:0;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;1065:26:3::1;:24;:26::i;13050:158:32:-:0;13121:20;:32;;-1:-1:-1;;;;;;13121:32:32;-1:-1:-1;;;;;13121:32:32;;;;;13168:33;;;;;;13121:32;;13168:33;:::i;:::-;;;;;;;;13050:158;:::o;6610:194::-;6734:10;6706:24;6722:7;6706:15;:24::i;6407:127::-;6507:10;6487:31;;;;:19;:31;;;;;:40;6521:6;;6487:31;:40;:::i;8297:150:23:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:23;;8390:4;:50::i;2673:187:3:-;2765:6;;;-1:-1:-1;;;;;2781:17:3;;;-1:-1:-1;;;;;;2781:17:3;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;6287:417:29:-;6379:7;6402;6413:1;6402:12;6398:91;;6432:11;;6430:13;;;;;:::i;:::-;;;;-1:-1:-1;6467:11:29;;;-1:-1:-1;6398:91:29;6560:25;6570:2;6574:7;6583:1;6560:9;:25::i;:::-;6600:17;;:21;6596:77;;6637:19;;;;:10;:19;;;;;:25;6659:3;6637:19;:25;:::i;:::-;;6596:77;-1:-1:-1;6690:7:29;6287:417;-1:-1:-1;;6287:417:29:o;7078:118:32:-;7149:31;;;:19;:31;;;:40;7183:6;;7149:31;:40;:::i;11351:307:78:-;11501:8;-1:-1:-1;;;;;11492:17:78;:5;-1:-1:-1;;;;;11492:17:78;;11484:55;;;;-1:-1:-1;;;11484:55:78;;35005:2:81;11484:55:78;;;34987:21:81;35044:2;35024:18;;;35017:30;-1:-1:-1;;;35063:18:81;;;35056:55;35128:18;;11484:55:78;34803:349:81;11484:55:78;-1:-1:-1;;;;;11549:25:78;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11549:46:78;;;;;;;;;;11610:41;;540::81;;;11610::78;;513:18:81;11610:41:78;;;;;;;11351:307;;;:::o;1502:353:34:-;1605:100;1637:9;-1:-1:-1;;;1605:31:34;:100::i;:::-;1601:248;;;-1:-1:-1;;;;;1721:37:34;;;;;;:26;:37;;;;;;;;;:47;;-1:-1:-1;;1721:47:34;;;;;;;;;;1787:51;;540:41:81;;;1787:51:34;;513:18:81;1787:51:34;;;;;;;1502:353;;:::o;5514:305:78:-;5664:28;5674:4;5680:2;5684:7;5664:9;:28::i;:::-;5710:47;5733:4;5739:2;5743:7;5752:4;5710:22;:47::i;:::-;5702:110;;;;-1:-1:-1;;;5702:110:78;;;;;;;:::i;10104:161:32:-;10174:34;10236:22;10250:7;8639:1392;8702:34;8738:20;8808:32;8843:13;:22;8857:7;8843:22;;;;;;;;;;;8808:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8808:57:32;;;;-1:-1:-1;;;8808:57:32;;;;;;;;;;;;;;;;;;;;;;;;;8879:9;:16;8899:1;8879:21;8875:642;;8964:17;8984:24;9000:7;8984:15;:24::i;:::-;8964:44;-1:-1:-1;;;;;;9026:23:32;;;9022:485;;9073:88;9105:9;-1:-1:-1;;;9073:31:32;:88::i;:::-;9069:366;;;9204:74;;-1:-1:-1;;;9204:74:32;;-1:-1:-1;;;;;9204:50:32;;;;;:74;;9263:4;;9270:7;;9204:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9204:74:32;;;;;;;;;;;;:::i;:::-;9371:16;;9185:93;;-1:-1:-1;9185:93:32;-1:-1:-1;9371:20:32;9367:49;;9393:23;;8639:1392;;;:::o;9367:49::-;-1:-1:-1;;;;;9464:28:32;;;;;;:17;:28;;;;;;;;9452:40;;;;;;;;;;;;;;;;;;;9464:28;;9452:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9452:40:32;;;;-1:-1:-1;;;9452:40:32;;;;;;;;;;;;;;;;;;;;;;;;;9022:485;8902:615;8875:642;9530:9;:16;9550:1;9530:21;9526:132;;9618:29;;;;:17;:29;;;;;9606:41;;9618:29;9606:41;;;;;;;;;;;;;;;;9618:29;;9606:41;;9618:29;9606:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9606:41:32;;;;-1:-1:-1;;;9606:41:32;;;;;;;;;;;;;;;;;;;;;;;;;9526:132;9680:16;;:20;9676:349;;9750:9;:16;-1:-1:-1;;;;;9728:39:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9728:39:32;;9716:51;;9801:9;:16;-1:-1:-1;;;;;9787:31:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9787:31:32;;9781:37;;9837:6;9832:183;9849:9;:16;9845:1;:20;9832:183;;;9901:9;9911:1;9901:12;;;;;;;;:::i;:::-;;;;;;;:21;;;9886:9;9896:1;9886:12;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;9886:36:32;;;-1:-1:-1;;;;;9886:36:32;;;;;9949:9;9959:1;9949:12;;;;;;;;:::i;:::-;;;;;;;:16;;;9940:25;;:3;9944:1;9940:6;;;;;;;;:::i;:::-;;;;;;;;;;:25;9995:3;;9832:183;;;;9676:349;8760:1271;8639:1392;;;:::o;7558:1016::-;7617:13;7660:1;7650:7;:11;:37;;;;;7676:11;;7665:7;:22;;7650:37;7642:63;;;;-1:-1:-1;;;7642:63:32;;;;;;;:::i;:::-;7716:17;7736:24;7752:7;7736:15;:24::i;:::-;7716:44;-1:-1:-1;7779:42:32;:22;7716:44;7779:31;:42::i;:::-;7778:43;7770:77;;;;-1:-1:-1;;;7770:77:32;;;;;;;:::i;:::-;7868:19;;;;:10;:19;;;;;7862:33;;;;;:::i;:::-;:38;;-1:-1:-1;7858:280:32;;-1:-1:-1;;;;;7926:30:32;;;;;;:19;:30;;;;;7920:44;;;;;:::i;:::-;:49;;-1:-1:-1;7916:172:32;;-1:-1:-1;;;;;8020:30:32;;;;;;:19;:30;;;;;;;;8052:19;;;:10;:19;;;;;;8003:69;;;;8020:30;8003:69;;:::i;:::-;;;;;;;;;;;;;7989:84;;;7558:1016;;;:::o;7916:172::-;8108:19;;;;:10;:19;;;;;8101:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7558:1016;;;:::o;7858:280::-;8152:87;8184:9;-1:-1:-1;;;8152:31:32;:87::i;:::-;8148:194;;;8262:69;;-1:-1:-1;;;8262:69:32;;-1:-1:-1;;;;;8262:45:32;;;;;:69;;8316:4;;8323:7;;8262:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8262:69:32;;;;;;;;;;;;:::i;8148:194::-;-1:-1:-1;;;;;8357:37:32;;;;;;:26;:37;;;;;;;;8352:216;;-1:-1:-1;;;;;8441:28:32;;;;;;:17;:28;;;;;8471:18;:7;:16;:18::i;:::-;8424:66;;;;;;;;;:::i;8352:216::-;-1:-1:-1;;;;;8529:28:32;;;;;;:17;:28;;;;;8522:35;;;;;:::i;8352:216::-;7632:942;7558:1016;;;:::o;5351:163::-;5424:44;;5457:10;;-1:-1:-1;;;;;5424:44:32;;;;;;;;5478:29;:11;5497:9;5478:18;:29::i;1927:539:34:-;2023:31;:11;2044:9;2023:20;:31::i;:::-;2015:74;;;;-1:-1:-1;;;2015:74:34;;39933:2:81;2015:74:34;;;39915:21:81;39972:2;39952:18;;;39945:30;40011:32;39991:18;;;39984:60;40061:18;;2015:74:34;39731:354:81;2015:74:34;-1:-1:-1;;;;;2107:25:34;;;;:122;;;2136:93;2168:11;-1:-1:-1;;;2136:31:34;:93::i;:::-;2099:150;;;;-1:-1:-1;;;2099:150:34;;40292:2:81;2099:150:34;;;40274:21:81;40331:2;40311:18;;;40304:30;-1:-1:-1;;;40350:18:81;;;40343:45;40405:18;;2099:150:34;40090:339:81;2099:150:34;-1:-1:-1;;;;;2263:32:34;;;;;;;:21;:32;;;;;;;;:47;;;;2259:201;;-1:-1:-1;;;;;2326:32:34;;;;;;;:21;:32;;;;;;:46;;-1:-1:-1;;;;;;2326:46:34;;;;;;;;;2391:58;2438:10;;2326:46;:32;2391:58;;;1927:539;;:::o;2984:483:32:-;3086:4;-1:-1:-1;;;;;;3109:45:32;;-1:-1:-1;;;3109:45:32;;:80;;-1:-1:-1;;;;;;;3158:31:32;;-1:-1:-1;;;3158:31:32;3109:80;:120;;;;3193:36;3217:11;3193:23;:36::i;:::-;3109:186;;;-1:-1:-1;;;;;;;3245:50:32;;-1:-1:-1;;;3245:50:32;3109:186;:236;;;-1:-1:-1;;;;;;;3299:46:32;;-1:-1:-1;;;3299:46:32;3109:236;:301;;;-1:-1:-1;;;;;;;3361:49:32;;-1:-1:-1;;;3361:49:32;3109:301;:351;;;-1:-1:-1;;;;;;;3414:46:32;;-1:-1:-1;;;3414:46:32;3102:358;2984:483;-1:-1:-1;;2984:483:32:o;11997:430::-;12123:38;;;12115:64;;;;-1:-1:-1;;;12115:64:32;;;;;;;:::i;:::-;12189:24;12228:6;12223:128;12236:22;;;12223:128;;;12295:11;;12307:1;12295:14;;;;;;;:::i;:::-;;;;;;;12275:34;;;;;:::i;:::-;;-1:-1:-1;12335:3:32;;12223:128;;;;12387:5;12368:16;:24;12360:60;;;;-1:-1:-1;;;12360:60:32;;40636:2:81;12360:60:32;;;40618:21:81;40675:2;40655:18;;;40648:30;-1:-1:-1;;;40694:18:81;;;40687:53;40757:18;;12360:60:32;40434:347:81;12489:468:32;12640:6;12635:316;12648:22;;;12635:316;;;12687:9;12719:176;;;;;;;;12790:9;;12800:1;12790:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12719:176:32;;;;;12840:11;;12852:1;12840:14;;;;;;;:::i;:::-;12719:176;12840:14;;;;;;;;;12719:176;;;;;-1:-1:-1;12687:222:32;;;;;;;;-1:-1:-1;12687:222:32;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12687:222:32;-1:-1:-1;;;;;;12687:222:32;;;-1:-1:-1;;;;;12687:222:32;;;;;;;;;;12935:3;12635:316;;1053:178:29;1175:49;1192:4;1198:2;1202:7;1218:4;1175:16;:49::i;2670:264:34:-;2775:10;2798:1;2753:33;;;:21;:33;;;;;;-1:-1:-1;;;;;2753:33:34;:47;2749:179;;2868:10;2846:33;;;;:21;:33;;;;;;;;2816:101;;-1:-1:-1;;;2816:101:34;;;;;41286:34:81;;;;-1:-1:-1;;;;;41356:15:81;;;41336:18;;;41329:43;41388:18;;;41381:34;;;2846:33:34;;2816:76;;41221:18:81;;2816:101:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7009:137:78;7102:37;7112:2;7116:7;7125:9;7102:37;;;;;;;;;;;;:9;:37::i;2778:1388:23:-;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:23;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;4370:463:32;-1:-1:-1;;;;;4500:26:32;;4521:4;4500:26;;;;:52;;;4530:22;:9;-1:-1:-1;;;;;4530:20:32;;:22::i;:::-;4492:72;;;;-1:-1:-1;;;4492:72:32;;41893:2:81;4492:72:32;;;41875:21:81;41932:1;41912:18;;;41905:29;-1:-1:-1;;;41950:18:81;;;41943:37;41997:18;;4492:72:32;41691:330:81;4492:72:32;4579:42;;4610:10;;-1:-1:-1;;;;;4579:42:32;;;;;;;;-1:-1:-1;;;;;4631:28:32;;;;;;:17;:28;;;;;:38;4662:7;;4631:28;:38;:::i;:::-;-1:-1:-1;;;;;;4679:37:32;;;;;;:26;:37;;;;;:56;;-1:-1:-1;;4679:56:32;;;;;;;4745:26;:11;4679:37;4745:15;:26::i;:::-;;4781:45;4810:9;4821:4;4781:28;:45::i;4904:118:23:-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;1349:282:20:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;724:160:80:-;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;837:5:80::1;:13;845:5:::0;837;:13:::1;:::i;:::-;-1:-1:-1::0;860:7:80::1;:17;870:7:::0;860;:17:::1;:::i;1104:111:3:-:0;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;1176:32:3::1;929:10:6::0;1176:18:3::1;:32::i;2206:404:23:-:0;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:23;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:23;2581:12;;12427:829:78;12576:4;12596:15;:2;-1:-1:-1;;;;;12596:13:78;;:15::i;:::-;12592:658;;;12631:69;;-1:-1:-1;;;12631:69:78;;-1:-1:-1;;;;;12631:36:78;;;;;:69;;12668:10;;12680:4;;12686:7;;12695:4;;12631:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12631:69:78;;;;;;;;-1:-1:-1;;12631:69:78;;;;;;;;;;;;:::i;:::-;;;12627:571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12867:6;:13;12884:1;12867:18;12863:321;;12909:60;;-1:-1:-1;;;12909:60:78;;;;;;;:::i;12863:321::-;13136:6;13130:13;13121:6;13117:2;13113:15;13106:38;12627:571;-1:-1:-1;;;;;;12750:51:78;-1:-1:-1;;;12750:51:78;;-1:-1:-1;12743:58:78;;12592:658;-1:-1:-1;13235:4:78;13228:11;;415:696:18;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;-1:-1:-1;;;;;595:18:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:18;-1:-1:-1;572:41:18;-1:-1:-1;733:28:18;;;749:2;733:28;788:280;-1:-1:-1;;819:5:18;-1:-1:-1;;;953:2:18;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:18;788:280;1032:21;-1:-1:-1;1088:6:18;415:696;-1:-1:-1;;;415:696:18:o;4107:269:34:-;-1:-1:-1;;;;;4262:18:34;;4258:31;4282:7;4258:31;4335:33;;;;;;;:17;:33;;;;;;4299:70;;4316:4;;4322:2;;4326:7;;-1:-1:-1;;;;;4335:33:34;4299:16;:70::i;7367:1103:78:-;-1:-1:-1;;;;;7525:16:78;;7517:61;;;;-1:-1:-1;;;7517:61:78;;42976:2:81;7517:61:78;;;42958:21:81;;;42995:18;;;42988:30;43054:34;43034:18;;;43027:62;43106:18;;7517:61:78;42774:356:81;7517:61:78;7597:16;7605:7;7597;:16::i;:::-;7596:17;7588:58;;;;-1:-1:-1;;;7588:58:78;;43337:2:81;7588:58:78;;;43319:21:81;43376:2;43356:18;;;43349:30;-1:-1:-1;;;43395:18:81;;;43388:58;43463:18;;7588:58:78;43135:352:81;7588:58:78;7657:56;7686:1;7690:2;7694:7;7703:9;7657:20;:56::i;:::-;-1:-1:-1;;;;;8055:13:78;;;;;;;:9;:13;;;;;;;;:18;;8072:1;8055:18;;;8116:73;;;;;;;;;;-1:-1:-1;;;;;8116:73:78;;;;;;;;;8094:19;;;:10;:19;;;;;;:95;;;;;-1:-1:-1;;;8094:95:78;;;;;;;;;;;;8204:33;;8105:7;;8055:13;-1:-1:-1;;;;;;;;;;;8204:33:78;8055:13;;8204:33;8334:53;8365:1;8369:2;8373:7;8382:4;8334:22;:53::i;704:427:20:-;768:4;975:68;1008:7;-1:-1:-1;;;975:32:20;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:20;1093:7;-1:-1:-1;;;;;;1060:32:20;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:20:o;4262:647::-;4433:71;;;-1:-1:-1;;;;;;43654:33:81;;4433:71:20;;;;43636:52:81;;;;4433:71:20;;;;;;;;;;43609:18:81;;;;4433:71:20;;;;;;;;;-1:-1:-1;;;;;4433:71:20;-1:-1:-1;;;4433:71:20;;;4712:20;;4364:4;;4433:71;4364:4;;;;;;4433:71;4364:4;;4712:20;4677:7;4670:5;4659:86;4648:97;;4772:16;4758:30;;4822:4;4816:11;4801:26;;4854:7;:29;;;;;4879:4;4865:10;:18;;4854:29;:48;;;;;4901:1;4887:11;:15;4854:48;4847:55;4262:647;-1:-1:-1;;;;;;;4262:647:20:o;9889:890:22:-;9942:7;;-1:-1:-1;;;10017:15:22;;10013:99;;-1:-1:-1;;;10052:15:22;;;-1:-1:-1;10095:2:22;10085:12;10013:99;-1:-1:-1;;;10129:5:22;:15;10125:99;;-1:-1:-1;;;10164:15:22;;;-1:-1:-1;10207:2:22;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:22;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:22;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:22;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:22;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:22:o;4382:640:34:-;-1:-1:-1;;;;;4533:18:34;;4529:31;4553:7;4529:31;-1:-1:-1;;;;;4574:23:34;;;;;;:64;;-1:-1:-1;;;;;;4601:37:34;;;;;;:26;:37;;;;;;;;4574:64;4570:446;;;4662:96;;-1:-1:-1;;;4662:96:34;;-1:-1:-1;;;;;4662:65:34;;;;;:96;;4728:10;;4740:4;;4746:2;;4750:7;;4662:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4654:135;;;;-1:-1:-1;;;4654:135:34;;;;;;;:::i;:::-;4570:446;;;4810:20;;-1:-1:-1;;;;;4810:20:34;:34;4806:210;;4906:20;;4867:107;;-1:-1:-1;;;4867:107:34;;-1:-1:-1;;;;;4906:20:34;;;;4867:76;;:107;;4944:10;;4956:4;;4962:2;;4966:7;;4867:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4859:146;;;;-1:-1:-1;;;4859:146:34;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:81;-1:-1:-1;;;;;;88:32:81;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:131::-;-1:-1:-1;;;;;667:31:81;;657:42;;647:70;;713:1;710;703:12;728:247;787:6;840:2;828:9;819:7;815:23;811:32;808:52;;;856:1;853;846:12;808:52;895:9;882:23;914:31;939:5;914:31;:::i;980:250::-;1065:1;1075:113;1089:6;1086:1;1083:13;1075:113;;;1165:11;;;1159:18;1146:11;;;1139:39;1111:2;1104:10;1075:113;;;-1:-1:-1;;1222:1:81;1204:16;;1197:27;980:250::o;1235:271::-;1277:3;1315:5;1309:12;1342:6;1337:3;1330:19;1358:76;1427:6;1420:4;1415:3;1411:14;1404:4;1397:5;1393:16;1358:76;:::i;:::-;1488:2;1467:15;-1:-1:-1;;1463:29:81;1454:39;;;;1495:4;1450:50;;1235:271;-1:-1:-1;;1235:271:81:o;1511:220::-;1660:2;1649:9;1642:21;1623:4;1680:45;1721:2;1710:9;1706:18;1698:6;1680:45;:::i;1736:180::-;1795:6;1848:2;1836:9;1827:7;1823:23;1819:32;1816:52;;;1864:1;1861;1854:12;1816:52;-1:-1:-1;1887:23:81;;1736:180;-1:-1:-1;1736:180:81:o;1921:203::-;-1:-1:-1;;;;;2085:32:81;;;;2067:51;;2055:2;2040:18;;1921:203::o;2129:315::-;2197:6;2205;2258:2;2246:9;2237:7;2233:23;2229:32;2226:52;;;2274:1;2271;2264:12;2226:52;2313:9;2300:23;2332:31;2357:5;2332:31;:::i;:::-;2382:5;2434:2;2419:18;;;;2406:32;;-1:-1:-1;;;2129:315:81:o;2449:435::-;2502:3;2540:5;2534:12;2567:6;2562:3;2555:19;2593:4;2622:2;2617:3;2613:12;2606:19;;2659:2;2652:5;2648:14;2680:1;2690:169;2704:6;2701:1;2698:13;2690:169;;;2765:13;;2753:26;;2799:12;;;;2834:15;;;;2726:1;2719:9;2690:169;;;-1:-1:-1;2875:3:81;;2449:435;-1:-1:-1;;;;;2449:435:81:o;2889:261::-;3068:2;3057:9;3050:21;3031:4;3088:56;3140:2;3129:9;3125:18;3117:6;3088:56;:::i;3155:348::-;3207:8;3217:6;3271:3;3264:4;3256:6;3252:17;3248:27;3238:55;;3289:1;3286;3279:12;3238:55;-1:-1:-1;3312:20:81;;-1:-1:-1;;;;;3344:30:81;;3341:50;;;3387:1;3384;3377:12;3341:50;3424:4;3416:6;3412:17;3400:29;;3476:3;3469:4;3460:6;3452;3448:19;3444:30;3441:39;3438:59;;;3493:1;3490;3483:12;3508:479;3588:6;3596;3604;3657:2;3645:9;3636:7;3632:23;3628:32;3625:52;;;3673:1;3670;3663:12;3625:52;3709:9;3696:23;3686:33;;3770:2;3759:9;3755:18;3742:32;-1:-1:-1;;;;;3789:6:81;3786:30;3783:50;;;3829:1;3826;3819:12;3783:50;3868:59;3919:7;3910:6;3899:9;3895:22;3868:59;:::i;:::-;3508:479;;3946:8;;-1:-1:-1;3842:85:81;;-1:-1:-1;;;;3508:479:81:o;3992:375::-;4063:8;4073:6;4127:3;4120:4;4112:6;4108:17;4104:27;4094:55;;4145:1;4142;4135:12;4094:55;-1:-1:-1;4168:20:81;;-1:-1:-1;;;;;4200:30:81;;4197:50;;;4243:1;4240;4233:12;4197:50;4280:4;4272:6;4268:17;4256:29;;4340:3;4333:4;4323:6;4320:1;4316:14;4308:6;4304:27;4300:38;4297:47;4294:67;;;4357:1;4354;4347:12;4372:865;4511:6;4519;4527;4535;4543;4596:2;4584:9;4575:7;4571:23;4567:32;4564:52;;;4612:1;4609;4602:12;4564:52;4648:9;4635:23;4625:33;;4709:2;4698:9;4694:18;4681:32;-1:-1:-1;;;;;4773:2:81;4765:6;4762:14;4759:34;;;4789:1;4786;4779:12;4759:34;4828:78;4898:7;4889:6;4878:9;4874:22;4828:78;:::i;:::-;4925:8;;-1:-1:-1;4802:104:81;-1:-1:-1;5013:2:81;4998:18;;4985:32;;-1:-1:-1;5029:16:81;;;5026:36;;;5058:1;5055;5048:12;5026:36;;5097:80;5169:7;5158:8;5147:9;5143:24;5097:80;:::i;:::-;4372:865;;;;-1:-1:-1;4372:865:81;;-1:-1:-1;5196:8:81;;5071:106;4372:865;-1:-1:-1;;;4372:865:81:o;5242:456::-;5319:6;5327;5335;5388:2;5376:9;5367:7;5363:23;5359:32;5356:52;;;5404:1;5401;5394:12;5356:52;5443:9;5430:23;5462:31;5487:5;5462:31;:::i;:::-;5512:5;-1:-1:-1;5569:2:81;5554:18;;5541:32;5582:33;5541:32;5582:33;:::i;:::-;5242:456;;5634:7;;-1:-1:-1;;;5688:2:81;5673:18;;;;5660:32;;5242:456::o;5885:248::-;5953:6;5961;6014:2;6002:9;5993:7;5989:23;5985:32;5982:52;;;6030:1;6027;6020:12;5982:52;-1:-1:-1;;6053:23:81;;;6123:2;6108:18;;;6095:32;;-1:-1:-1;5885:248:81:o;6138:274::-;-1:-1:-1;;;;;6330:32:81;;;;6312:51;;6394:2;6379:18;;6372:34;6300:2;6285:18;;6138:274::o;6417:411::-;6488:6;6496;6549:2;6537:9;6528:7;6524:23;6520:32;6517:52;;;6565:1;6562;6555:12;6517:52;6605:9;6592:23;-1:-1:-1;;;;;6630:6:81;6627:30;6624:50;;;6670:1;6667;6660:12;6624:50;6709:59;6760:7;6751:6;6740:9;6736:22;6709:59;:::i;:::-;6787:8;;6683:85;;-1:-1:-1;6417:411:81;-1:-1:-1;;;;6417:411:81:o;6833:546::-;6913:6;6921;6929;6982:2;6970:9;6961:7;6957:23;6953:32;6950:52;;;6998:1;6995;6988:12;6950:52;7037:9;7024:23;7056:31;7081:5;7056:31;:::i;:::-;7106:5;-1:-1:-1;7162:2:81;7147:18;;7134:32;-1:-1:-1;;;;;7178:30:81;;7175:50;;;7221:1;7218;7211:12;7384:658;7555:2;7607:21;;;7677:13;;7580:18;;;7699:22;;;7526:4;;7555:2;7778:15;;;;7752:2;7737:18;;;7526:4;7821:195;7835:6;7832:1;7829:13;7821:195;;;7900:13;;-1:-1:-1;;;;;7896:39:81;7884:52;;7991:15;;;;7956:12;;;;7932:1;7850:9;7821:195;;;-1:-1:-1;8033:3:81;;7384:658;-1:-1:-1;;;;;;7384:658:81:o;8047:797::-;8177:6;8185;8193;8201;8254:2;8242:9;8233:7;8229:23;8225:32;8222:52;;;8270:1;8267;8260:12;8222:52;8310:9;8297:23;-1:-1:-1;;;;;8380:2:81;8372:6;8369:14;8366:34;;;8396:1;8393;8386:12;8366:34;8435:78;8505:7;8496:6;8485:9;8481:22;8435:78;:::i;:::-;8532:8;;-1:-1:-1;8409:104:81;-1:-1:-1;8620:2:81;8605:18;;8592:32;;-1:-1:-1;8636:16:81;;;8633:36;;;8665:1;8662;8655:12;8633:36;;8704:80;8776:7;8765:8;8754:9;8750:24;8704:80;:::i;:::-;8047:797;;;;-1:-1:-1;8803:8:81;-1:-1:-1;;;;8047:797:81:o;8849:592::-;8956:6;8964;8972;9025:2;9013:9;9004:7;9000:23;8996:32;8993:52;;;9041:1;9038;9031:12;8993:52;9080:9;9067:23;9099:31;9124:5;9099:31;:::i;:::-;9149:5;-1:-1:-1;9205:2:81;9190:18;;9177:32;-1:-1:-1;;;;;9221:30:81;;9218:50;;;9264:1;9261;9254:12;9218:50;9303:78;9373:7;9364:6;9353:9;9349:22;9303:78;:::i;9446:118::-;9532:5;9525:13;9518:21;9511:5;9508:32;9498:60;;9554:1;9551;9544:12;9569:681;9655:6;9663;9671;9679;9732:2;9720:9;9711:7;9707:23;9703:32;9700:52;;;9748:1;9745;9738:12;9700:52;9787:9;9774:23;9806:31;9831:5;9806:31;:::i;:::-;9856:5;-1:-1:-1;9912:2:81;9897:18;;9884:32;-1:-1:-1;;;;;9928:30:81;;9925:50;;;9971:1;9968;9961:12;9925:50;10010:59;10061:7;10052:6;10041:9;10037:22;10010:59;:::i;:::-;10088:8;;-1:-1:-1;9984:85:81;-1:-1:-1;;10175:2:81;10160:18;;10147:32;10188:30;10147:32;10188:30;:::i;:::-;9569:681;;;;-1:-1:-1;9569:681:81;;-1:-1:-1;;9569:681:81:o;10839:127::-;10900:10;10895:3;10891:20;10888:1;10881:31;10931:4;10928:1;10921:15;10955:4;10952:1;10945:15;10971:275;11042:2;11036:9;11107:2;11088:13;;-1:-1:-1;;11084:27:81;11072:40;;-1:-1:-1;;;;;11127:34:81;;11163:22;;;11124:62;11121:88;;;11189:18;;:::i;:::-;11225:2;11218:22;10971:275;;-1:-1:-1;10971:275:81:o;11251:187::-;11300:4;-1:-1:-1;;;;;11325:6:81;11322:30;11319:56;;;11355:18;;:::i;:::-;-1:-1:-1;11421:2:81;11400:15;-1:-1:-1;;11396:29:81;11427:4;11392:40;;11251:187::o;11443:338::-;11508:5;11537:53;11553:36;11582:6;11553:36;:::i;:::-;11537:53;:::i;:::-;11528:62;;11613:6;11606:5;11599:21;11653:3;11644:6;11639:3;11635:16;11632:25;11629:45;;;11670:1;11667;11660:12;11629:45;11719:6;11714:3;11707:4;11700:5;11696:16;11683:43;11773:1;11766:4;11757:6;11750:5;11746:18;11742:29;11735:40;11443:338;;;;;:::o;11786:222::-;11829:5;11882:3;11875:4;11867:6;11863:17;11859:27;11849:55;;11900:1;11897;11890:12;11849:55;11922:80;11998:3;11989:6;11976:20;11969:4;11961:6;11957:17;11922:80;:::i;12013:543::-;12101:6;12109;12162:2;12150:9;12141:7;12137:23;12133:32;12130:52;;;12178:1;12175;12168:12;12130:52;12218:9;12205:23;-1:-1:-1;;;;;12288:2:81;12280:6;12277:14;12274:34;;;12304:1;12301;12294:12;12274:34;12327:50;12369:7;12360:6;12349:9;12345:22;12327:50;:::i;:::-;12317:60;;12430:2;12419:9;12415:18;12402:32;12386:48;;12459:2;12449:8;12446:16;12443:36;;;12475:1;12472;12465:12;12443:36;;12498:52;12542:7;12531:8;12520:9;12516:24;12498:52;:::i;:::-;12488:62;;;12013:543;;;;;:::o;13367:540::-;13444:6;13452;13460;13513:2;13501:9;13492:7;13488:23;13484:32;13481:52;;;13529:1;13526;13519:12;13481:52;13569:9;13556:23;-1:-1:-1;;;;;13594:6:81;13591:30;13588:50;;;13634:1;13631;13624:12;13588:50;13673:59;13724:7;13715:6;13704:9;13700:22;13673:59;:::i;:::-;13751:8;;-1:-1:-1;13647:85:81;-1:-1:-1;;13836:2:81;13821:18;;13808:32;13849:28;13808:32;13849:28;:::i;:::-;13896:5;13886:15;;;13367:540;;;;;:::o;13912:382::-;13977:6;13985;14038:2;14026:9;14017:7;14013:23;14009:32;14006:52;;;14054:1;14051;14044:12;14006:52;14093:9;14080:23;14112:31;14137:5;14112:31;:::i;:::-;14162:5;-1:-1:-1;14219:2:81;14204:18;;14191:32;14232:30;14191:32;14232:30;:::i;:::-;14281:7;14271:17;;;13912:382;;;;;:::o;14299:241::-;14355:6;14408:2;14396:9;14387:7;14383:23;14379:32;14376:52;;;14424:1;14421;14414:12;14376:52;14463:9;14450:23;14482:28;14504:5;14482:28;:::i;14545:415::-;14612:6;14620;14673:2;14661:9;14652:7;14648:23;14644:32;14641:52;;;14689:1;14686;14679:12;14641:52;14728:9;14715:23;14747:31;14772:5;14747:31;:::i;:::-;14797:5;-1:-1:-1;14854:2:81;14839:18;;14826:32;14902:6;14889:20;;14877:33;;14867:61;;14924:1;14921;14914:12;14965:932;15104:6;15112;15120;15128;15136;15189:2;15177:9;15168:7;15164:23;15160:32;15157:52;;;15205:1;15202;15195:12;15157:52;15244:9;15231:23;15263:31;15288:5;15263:31;:::i;:::-;15313:5;-1:-1:-1;15369:2:81;15354:18;;15341:32;-1:-1:-1;;;;;15422:14:81;;;15419:34;;;15449:1;15446;15439:12;16107:795;16202:6;16210;16218;16226;16279:3;16267:9;16258:7;16254:23;16250:33;16247:53;;;16296:1;16293;16286:12;16247:53;16335:9;16322:23;16354:31;16379:5;16354:31;:::i;:::-;16404:5;-1:-1:-1;16461:2:81;16446:18;;16433:32;16474:33;16433:32;16474:33;:::i;:::-;16526:7;-1:-1:-1;16580:2:81;16565:18;;16552:32;;-1:-1:-1;16635:2:81;16620:18;;16607:32;-1:-1:-1;;;;;16651:30:81;;16648:50;;;16694:1;16691;16684:12;16648:50;16717:22;;16770:4;16762:13;;16758:27;-1:-1:-1;16748:55:81;;16799:1;16796;16789:12;16748:55;16822:74;16888:7;16883:2;16870:16;16865:2;16861;16857:11;16822:74;:::i;:::-;16812:84;;;16107:795;;;;;;;:::o;16907:469::-;16968:3;17006:5;17000:12;17033:6;17028:3;17021:19;17059:4;17088:2;17083:3;17079:12;17072:19;;17125:2;17118:5;17114:14;17146:1;17156:195;17170:6;17167:1;17164:13;17156:195;;;17235:13;;-1:-1:-1;;;;;17231:39:81;17219:52;;17291:12;;;;17326:15;;;;17267:1;17185:9;17156:195;;17381:285;17576:2;17565:9;17558:21;17539:4;17596:64;17656:2;17645:9;17641:18;17633:6;17596:64;:::i;17671:489::-;17944:2;17933:9;17926:21;17907:4;17970:64;18030:2;18019:9;18015:18;18007:6;17970:64;:::i;:::-;18082:9;18074:6;18070:22;18065:2;18054:9;18050:18;18043:50;18110:44;18147:6;18139;18110:44;:::i;:::-;18102:52;17671:489;-1:-1:-1;;;;;17671:489:81:o;18165:171::-;18232:20;;-1:-1:-1;;;;;18281:30:81;;18271:41;;18261:69;;18326:1;18323;18316:12;18341:319;18408:6;18416;18469:2;18457:9;18448:7;18444:23;18440:32;18437:52;;;18485:1;18482;18475:12;18437:52;18524:9;18511:23;18543:31;18568:5;18543:31;:::i;:::-;18593:5;-1:-1:-1;18617:37:81;18650:2;18635:18;;18617:37;:::i;:::-;18607:47;;18341:319;;;;;:::o;18665:388::-;18733:6;18741;18794:2;18782:9;18773:7;18769:23;18765:32;18762:52;;;18810:1;18807;18800:12;18762:52;18849:9;18836:23;18868:31;18893:5;18868:31;:::i;:::-;18918:5;-1:-1:-1;18975:2:81;18960:18;;18947:32;18988:33;18947:32;18988:33;:::i;19058:400::-;19260:2;19242:21;;;19299:2;19279:18;;;19272:30;19338:34;19333:2;19318:18;;19311:62;-1:-1:-1;;;19404:2:81;19389:18;;19382:34;19448:3;19433:19;;19058:400::o;19463:380::-;19542:1;19538:12;;;;19585;;;19606:61;;19660:4;19652:6;19648:17;19638:27;;19606:61;19713:2;19705:6;19702:14;19682:18;19679:38;19676:161;;19759:10;19754:3;19750:20;19747:1;19740:31;19794:4;19791:1;19784:15;19822:4;19819:1;19812:15;20680:341;20882:2;20864:21;;;20921:2;20901:18;;;20894:30;-1:-1:-1;;;20955:2:81;20940:18;;20933:47;21012:2;20997:18;;20680:341::o;21377:345::-;21579:2;21561:21;;;21618:2;21598:18;;;21591:30;-1:-1:-1;;;21652:2:81;21637:18;;21630:51;21713:2;21698:18;;21377:345::o;21727:409::-;21929:2;21911:21;;;21968:2;21948:18;;;21941:30;22007:34;22002:2;21987:18;;21980:62;-1:-1:-1;;;22073:2:81;22058:18;;22051:43;22126:3;22111:19;;21727:409::o;22141:127::-;22202:10;22197:3;22193:20;22190:1;22183:31;22233:4;22230:1;22223:15;22257:4;22254:1;22247:15;22273:127;22334:10;22329:3;22325:20;22322:1;22315:31;22365:4;22362:1;22355:15;22389:4;22386:1;22379:15;22405:135;22444:3;22465:17;;;22462:43;;22485:18;;:::i;:::-;-1:-1:-1;22532:1:81;22521:13;;22405:135::o;22545:125::-;22610:9;;;22631:10;;;22628:36;;;22644:18;;:::i;22675:522::-;22753:4;22759:6;22819:11;22806:25;22913:2;22909:7;22898:8;22882:14;22878:29;22874:43;22854:18;22850:68;22840:96;;22932:1;22929;22922:12;22840:96;22959:33;;23011:20;;;-1:-1:-1;;;;;;23043:30:81;;23040:50;;;23086:1;23083;23076:12;23040:50;23119:4;23107:17;;-1:-1:-1;23150:14:81;23146:27;;;23136:38;;23133:58;;;23187:1;23184;23177:12;23202:184;23260:6;23313:2;23301:9;23292:7;23288:23;23284:32;23281:52;;;23329:1;23326;23319:12;23281:52;23352:28;23370:9;23352:28;:::i;24365:337::-;24567:2;24549:21;;;24606:2;24586:18;;;24579:30;-1:-1:-1;;;24640:2:81;24625:18;;24618:43;24693:2;24678:18;;24365:337::o;24707:348::-;24909:2;24891:21;;;24948:2;24928:18;;;24921:30;-1:-1:-1;;;24982:2:81;24967:18;;24960:54;25046:2;25031:18;;24707:348::o;26231:337::-;26433:2;26415:21;;;26472:2;26452:18;;;26445:30;-1:-1:-1;;;26506:2:81;26491:18;;26484:43;26559:2;26544:18;;26231:337::o;26699:545::-;26801:2;26796:3;26793:11;26790:448;;;26837:1;26862:5;26858:2;26851:17;26907:4;26903:2;26893:19;26977:2;26965:10;26961:19;26958:1;26954:27;26948:4;26944:38;27013:4;27001:10;26998:20;26995:47;;;-1:-1:-1;27036:4:81;26995:47;27091:2;27086:3;27082:12;27079:1;27075:20;27069:4;27065:31;27055:41;;27146:82;27164:2;27157:5;27154:13;27146:82;;;27209:17;;;27190:1;27179:13;27146:82;;27249:166;-1:-1:-1;;27377:1:81;27373:11;;;27369:24;27365:29;27355:40;27401:1;27397:11;;;;27352:57;;27249:166::o;27420:1206::-;-1:-1:-1;;;;;27539:3:81;27536:27;27533:53;;;27566:18;;:::i;:::-;27595:94;27685:3;27645:38;27677:4;27671:11;27645:38;:::i;:::-;27639:4;27595:94;:::i;:::-;27715:1;27740:2;27735:3;27732:11;27757:1;27752:616;;;;28412:1;28429:3;28426:93;;;-1:-1:-1;28485:19:81;;;28472:33;28426:93;28545:64;28605:3;28598:5;28545:64;:::i;:::-;28539:4;28532:78;;27725:895;;27752:616;26646:1;26639:14;;;26683:4;26670:18;;-1:-1:-1;;27788:17:81;;;27889:9;27911:229;27925:7;27922:1;27919:14;27911:229;;;28014:19;;;28001:33;27986:49;;28121:4;28106:20;;;;28074:1;28062:14;;;;27941:12;27911:229;;;27915:3;28168;28159:7;28156:16;28153:159;;;28292:1;28288:6;28282:3;28276;28273:1;28269:11;28265:21;28261:34;28257:39;28244:9;28239:3;28235:19;28222:33;28218:79;28210:6;28203:95;28153:159;;;28355:1;28349:3;28346:1;28342:11;28338:19;28332:4;28325:33;27725:895;;27420:1206;;;:::o;28631:1075::-;28935:2;28947:21;;;28920:18;;29003:22;;;28887:4;29082:6;29056:2;29041:18;;28887:4;29116:304;29130:6;29127:1;29124:13;29116:304;;;29205:6;29192:20;29225:31;29250:5;29225:31;:::i;:::-;-1:-1:-1;;;;;29281:31:81;29269:44;;29336:4;29395:15;;;;29360:12;;;;29309:1;29145:9;29116:304;;;-1:-1:-1;29458:19:81;;;29451:4;29436:20;;29429:49;29487:19;;;-1:-1:-1;;;;;29518:31:81;;29515:51;;;29562:1;29559;29552:12;29515:51;29596:6;29593:1;29589:14;29575:28;;29649:6;29641;29634:4;29629:3;29625:14;29612:44;29677:16;29695:4;29673:27;;28631:1075;-1:-1:-1;;;;;;28631:1075:81:o;31239:1352::-;31365:3;31359:10;-1:-1:-1;;;;;31384:6:81;31381:30;31378:56;;;31414:18;;:::i;:::-;31443:97;31533:6;31493:38;31525:4;31519:11;31493:38;:::i;:::-;31487:4;31443:97;:::i;:::-;31595:4;;31659:2;31648:14;;31676:1;31671:663;;;;32378:1;32395:6;32392:89;;;-1:-1:-1;32447:19:81;;;32441:26;32392:89;32507:67;32567:6;32560:5;32507:67;:::i;:::-;32501:4;32494:81;;31641:944;;31671:663;26646:1;26639:14;;;26683:4;26670:18;;-1:-1:-1;;31707:20:81;;;31825:236;31839:7;31836:1;31833:14;31825:236;;;31928:19;;;31922:26;31907:42;;32020:27;;;;31988:1;31976:14;;;;31855:19;;31825:236;;;31829:3;32089:6;32080:7;32077:19;32074:201;;;32150:19;;;32144:26;-1:-1:-1;;32233:1:81;32229:14;;;32245:3;32225:24;32221:37;32217:42;32202:58;32187:74;;32074:201;-1:-1:-1;;;;;32321:1:81;32305:14;;;32301:22;32288:36;;-1:-1:-1;31239:1352:81:o;32953:168::-;33026:9;;;33057;;33074:15;;;33068:22;;33054:37;33044:71;;33095:18;;:::i;33258:217::-;33298:1;33324;33314:132;;33368:10;33363:3;33359:20;33356:1;33349:31;33403:4;33400:1;33393:15;33431:4;33428:1;33421:15;33314:132;-1:-1:-1;33460:9:81;;33258:217::o;34189:197::-;34227:3;34255:6;34296:2;34289:5;34285:14;34323:2;34314:7;34311:15;34308:41;;34329:18;;:::i;:::-;34378:1;34365:15;;34189:197;-1:-1:-1;;;34189:197:81:o;34391:407::-;34593:2;34575:21;;;34632:2;34612:18;;;34605:30;34671:34;34666:2;34651:18;;34644:62;-1:-1:-1;;;34737:2:81;34722:18;;34715:41;34788:3;34773:19;;34391:407::o;35157:414::-;35359:2;35341:21;;;35398:2;35378:18;;;35371:30;35437:34;35432:2;35417:18;;35410:62;-1:-1:-1;;;35503:2:81;35488:18;;35481:48;35561:3;35546:19;;35157:414::o;35576:191::-;35644:4;-1:-1:-1;;;;;35669:6:81;35666:30;35663:56;;;35699:18;;:::i;:::-;-1:-1:-1;35744:1:81;35740:14;35756:4;35736:25;;35576:191::o;35772:667::-;35837:5;35890:3;35883:4;35875:6;35871:17;35867:27;35857:55;;35908:1;35905;35898:12;35857:55;35937:6;35931:13;35963:4;35987:68;36003:51;36051:2;36003:51;:::i;35987:68::-;36089:15;;;36175:1;36171:10;;;;36159:23;;36155:32;;;36120:12;;;;36199:15;;;36196:35;;;36227:1;36224;36217:12;36196:35;36263:2;36255:6;36251:15;36275:135;36291:6;36286:3;36283:15;36275:135;;;36357:10;;36345:23;;36388:12;;;;36308;;36275:135;;;-1:-1:-1;36428:5:81;35772:667;-1:-1:-1;;;;;;35772:667:81:o;36444:1225::-;36581:6;36589;36642:2;36630:9;36621:7;36617:23;36613:32;36610:52;;;36658:1;36655;36648:12;36610:52;36691:9;36685:16;-1:-1:-1;;;;;36761:2:81;36753:6;36750:14;36747:34;;;36777:1;36774;36767:12;36747:34;36815:6;36804:9;36800:22;36790:32;;36860:7;36853:4;36849:2;36845:13;36841:27;36831:55;;36882:1;36879;36872:12;36831:55;36911:2;36905:9;36933:4;36957:68;36973:51;37021:2;36973:51;:::i;36957:68::-;37059:15;;;37141:1;37137:10;;;;37129:19;;37125:28;;;37090:12;;;;37165:19;;;37162:39;;;37197:1;37194;37187:12;37162:39;37221:11;;;;37241:210;37257:6;37252:3;37249:15;37241:210;;;37330:3;37324:10;37347:31;37372:5;37347:31;:::i;:::-;37391:18;;37274:12;;;;37429;;;;37241:210;;;37506:18;;;37500:25;37470:5;;-1:-1:-1;37500:25:81;;-1:-1:-1;;;37537:16:81;;;37534:36;;;37566:1;37563;37556:12;37534:36;;37589:74;37655:7;37644:8;37633:9;37629:24;37589:74;:::i;37674:722::-;37724:3;37765:5;37759:12;37794:36;37820:9;37794:36;:::i;:::-;37849:1;37866:18;;;37893:133;;;;38040:1;38035:355;;;;37859:531;;37893:133;-1:-1:-1;;37926:24:81;;37914:37;;37999:14;;37992:22;37980:35;;37971:45;;;-1:-1:-1;37893:133:81;;38035:355;38066:5;38063:1;38056:16;38095:4;38140:2;38137:1;38127:16;38165:1;38179:165;38193:6;38190:1;38187:13;38179:165;;;38271:14;;38258:11;;;38251:35;38314:16;;;;38208:10;;38179:165;;;38183:3;;;38373:6;38368:3;38364:16;38357:23;;37859:531;;;;;37674:722;;;;:::o;38401:277::-;38574:3;38599:73;38633:38;38667:3;38659:6;38633:38;:::i;:::-;38625:6;38599:73;:::i;38683:649::-;38763:6;38816:2;38804:9;38795:7;38791:23;38787:32;38784:52;;;38832:1;38829;38822:12;38784:52;38865:9;38859:16;-1:-1:-1;;;;;38890:6:81;38887:30;38884:50;;;38930:1;38927;38920:12;38884:50;38953:22;;39006:4;38998:13;;38994:27;-1:-1:-1;38984:55:81;;39035:1;39032;39025:12;38984:55;39064:2;39058:9;39089:49;39105:32;39134:2;39105:32;:::i;39089:49::-;39161:2;39154:5;39147:17;39201:7;39196:2;39191;39187;39183:11;39179:20;39176:33;39173:53;;;39222:1;39219;39212:12;39173:53;39235:67;39299:2;39294;39287:5;39283:14;39278:2;39274;39270:11;39235:67;:::i;39337:389::-;39513:3;39541:38;39575:3;39567:6;39541:38;:::i;:::-;39608:6;39602:13;39624:65;39682:6;39678:2;39671:4;39663:6;39659:17;39624:65;:::i;:::-;39705:15;;39337:389;-1:-1:-1;;;;39337:389:81:o;41426:128::-;41493:9;;;41514:11;;;41511:37;;;41528:18;;:::i;41559:127::-;41620:10;41615:3;41611:20;41608:1;41601:31;41651:4;41648:1;41641:15;41675:4;41672:1;41665:15;42026:489;-1:-1:-1;;;;;42295:15:81;;;42277:34;;42347:15;;42342:2;42327:18;;42320:43;42394:2;42379:18;;42372:34;;;42442:3;42437:2;42422:18;;42415:31;;;42220:4;;42463:46;;42489:19;;42481:6;42463:46;:::i;:::-;42455:54;42026:489;-1:-1:-1;;;;;;42026:489:81:o;42520:249::-;42589:6;42642:2;42630:9;42621:7;42617:23;42613:32;42610:52;;;42658:1;42655;42648:12;42610:52;42690:9;42684:16;42709:30;42733:5;42709:30;:::i;43699:456::-;-1:-1:-1;;;;;43986:15:81;;;43968:34;;44038:15;;;44033:2;44018:18;;44011:43;44090:15;;44085:2;44070:18;;44063:43;44137:2;44122:18;;44115:34;;;;43917:3;43902:19;;43699:456::o;44160:245::-;44227:6;44280:2;44268:9;44259:7;44255:23;44251:32;44248:52;;;44296:1;44293;44286:12;44248:52;44328:9;44322:16;44347:28;44369:5;44347:28;:::i;44410:350::-;44612:2;44594:21;;;44651:2;44631:18;;;44624:30;-1:-1:-1;;;44685:2:81;44670:18;;44663:56;44751:2;44736:18;;44410:350::o",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/// @author: manifold.xyz\n\nimport \"@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol\";\n\nimport \"./core/ERC721CreatorCore.sol\";\nimport \"./token/ERC721/ERC721Upgradeable.sol\";\n\n/**\n * @dev ERC721Creator implementation\n */\ncontract ERC721CreatorImplementation is AdminControlUpgradeable, ERC721Upgradeable, ERC721CreatorCore {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    /**\n     * Initializer\n     */\n    function initialize(string memory _name, string memory _symbol) public initializer {\n        __ERC721_init(_name, _symbol);\n        __Ownable_init();\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721Core, ERC721CreatorCore, AdminControlUpgradeable) returns (bool) {\n        return ERC721CreatorCore.supportsInterface(interfaceId) || ERC721Core.supportsInterface(interfaceId) || AdminControlUpgradeable.supportsInterface(interfaceId);\n    }\n\n    function _beforeTokenTransfer(address from, address to, uint256 tokenId, uint96 data) internal virtual override {\n        _approveTransfer(from, to, tokenId, uint16(data));\n    }\n\n    /**\n     * @dev See {ICreatorCore-registerExtension}.\n     */\n    function registerExtension(address extension, string calldata baseURI) external override adminRequired {\n        requireNonBlacklist(extension);\n        _registerExtension(extension, baseURI, false);\n    }\n\n    /**\n     * @dev See {ICreatorCore-registerExtension}.\n     */\n    function registerExtension(address extension, string calldata baseURI, bool baseURIIdentical) external override adminRequired {\n        requireNonBlacklist(extension);\n        _registerExtension(extension, baseURI, baseURIIdentical);\n    }\n\n\n    /**\n     * @dev See {ICreatorCore-unregisterExtension}.\n     */\n    function unregisterExtension(address extension) external override adminRequired {\n        _unregisterExtension(extension);\n    }\n\n    /**\n     * @dev See {ICreatorCore-blacklistExtension}.\n     */\n    function blacklistExtension(address extension) external override adminRequired {\n        _blacklistExtension(extension);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURIExtension}.\n     */\n    function setBaseTokenURIExtension(string calldata uri) external override {\n        requireExtension();\n        _setBaseTokenURIExtension(uri, false);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURIExtension}.\n     */\n    function setBaseTokenURIExtension(string calldata uri, bool identical) external override {\n        requireExtension();\n        _setBaseTokenURIExtension(uri, identical);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIPrefixExtension}.\n     */\n    function setTokenURIPrefixExtension(string calldata prefix) external override {\n        requireExtension();\n        _setTokenURIPrefixExtension(prefix);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIExtension}.\n     */\n    function setTokenURIExtension(uint256 tokenId, string calldata uri) external override {\n        requireExtension();\n        _setTokenURIExtension(tokenId, uri);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIExtension}.\n     */\n    function setTokenURIExtension(uint256[] calldata tokenIds, string[] calldata uris) external override {\n        requireExtension();\n        require(tokenIds.length == uris.length, \"Invalid input\");\n        for (uint i; i < tokenIds.length;) {\n            _setTokenURIExtension(tokenIds[i], uris[i]);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURI}.\n     */\n    function setBaseTokenURI(string calldata uri) external override adminRequired {\n        _setBaseTokenURI(uri);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIPrefix}.\n     */\n    function setTokenURIPrefix(string calldata prefix) external override adminRequired {\n        _setTokenURIPrefix(prefix);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURI}.\n     */\n    function setTokenURI(uint256 tokenId, string calldata uri) external override adminRequired {\n        _setTokenURI(tokenId, uri);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURI}.\n     */\n    function setTokenURI(uint256[] calldata tokenIds, string[] calldata uris) external override adminRequired {\n        require(tokenIds.length == uris.length, \"Invalid input\");\n        for (uint i; i < tokenIds.length;) {\n            _setTokenURI(tokenIds[i], uris[i]);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setMintPermissions}.\n     */\n    function setMintPermissions(address extension, address permissions) external override adminRequired {\n        _setMintPermissions(extension, permissions);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintBase}.\n     */\n    function mintBase(address to) public virtual override nonReentrant adminRequired returns(uint256) {\n        return _mintBase(to, \"\", 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintBase}.\n     */\n    function mintBase(address to, string calldata uri) public virtual override nonReentrant adminRequired returns(uint256) {\n        return _mintBase(to, uri, 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintBaseBatch}.\n     */\n    function mintBaseBatch(address to, uint16 count) public virtual override nonReentrant adminRequired returns(uint256[] memory tokenIds) {\n        tokenIds = new uint256[](count);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += count;\n\n        for (uint i; i < count;) {\n            tokenIds[i] = _mintBase(to, \"\", firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintBaseBatch}.\n     */\n    function mintBaseBatch(address to, string[] calldata uris) public virtual override nonReentrant adminRequired returns(uint256[] memory tokenIds) {\n        tokenIds = new uint256[](uris.length);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += uris.length;\n\n        for (uint i; i < uris.length;) {\n            tokenIds[i] = _mintBase(to, uris[i], firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev Mint token with no extension\n     */\n    function _mintBase(address to, string memory uri, uint256 tokenId) internal virtual returns(uint256) {\n        if (tokenId == 0) {\n            ++_tokenCount;\n            tokenId = _tokenCount;\n        }\n\n        // Call pre mint\n        _preMintBase(to, tokenId);\n\n        _safeMint(to, tokenId, 0);\n\n        if (bytes(uri).length > 0) {\n            _tokenURIs[tokenId] = uri;\n        }\n\n        return tokenId;\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtension}.\n     */\n    function mintExtension(address to) public virtual override nonReentrant returns(uint256) {\n        requireExtension();\n        return _mintExtension(to, \"\", 0, 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtension}.\n     */\n    function mintExtension(address to, string calldata uri) public virtual override nonReentrant returns(uint256) {\n        requireExtension();\n        return _mintExtension(to, uri, 0, 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtension}.\n     */\n    function mintExtension(address to, uint80 data) public virtual override nonReentrant returns(uint256) {\n        requireExtension();\n        return _mintExtension(to, \"\", data, 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtensionBatch}.\n     */\n    function mintExtensionBatch(address to, uint16 count) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        tokenIds = new uint256[](count);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += count;\n\n        for (uint i; i < count;) {\n            tokenIds[i] = _mintExtension(to, \"\", 0, firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtensionBatch}.\n     */\n    function mintExtensionBatch(address to, string[] calldata uris) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        tokenIds = new uint256[](uris.length);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += uris.length;\n\n        for (uint i; i < uris.length;) {\n            tokenIds[i] = _mintExtension(to, uris[i], 0, firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtensionBatch}.\n     */\n    function mintExtensionBatch(address to, uint80[] calldata data) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        tokenIds = new uint256[](data.length);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += data.length;\n\n        for (uint i; i < data.length;) {\n            tokenIds[i] = _mintExtension(to, \"\", data[i], firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n    \n    /**\n     * @dev Mint token via extension\n     */\n    function _mintExtension(address to, string memory uri, uint80 data, uint256 tokenId) internal virtual returns(uint256) {\n        if (tokenId == 0) {\n            ++_tokenCount;\n            tokenId = _tokenCount;\n        }\n\n        _checkMintPermissions(to, tokenId);\n        // Call pre mint\n        _preMintExtension(to, tokenId);\n\n        _safeMint(to, tokenId, data << 16 | _extensionToIndex[msg.sender]);\n\n        if (bytes(uri).length > 0) {\n            _tokenURIs[tokenId] = uri;\n        }\n\n        return tokenId;\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-tokenExtension}.\n     */\n    function tokenExtension(uint256 tokenId) public view virtual override returns (address extension) {\n        require(_exists(tokenId), \"Nonexistent token\");\n        extension = _tokenExtension(tokenId);\n        require(extension != address(0), \"No extension for token\");\n        require(!_blacklistedExtensions.contains(extension), \"Extension blacklisted\");\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-burn}.\n     */\n    function burn(uint256 tokenId) public virtual override nonReentrant {\n        require(_isApprovedOrOwner(msg.sender, tokenId), \"Caller is not owner or approved\");\n        address owner = ownerOf(tokenId);\n        address extension = _tokenExtension(tokenId);\n        _burn(tokenId);\n        _postBurn(owner, tokenId, extension);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyalties}.\n     */\n    function setRoyalties(address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        _setRoyaltiesExtension(address(0), receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyalties}.\n     */\n    function setRoyalties(uint256 tokenId, address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        require(_exists(tokenId), \"Nonexistent token\");\n        _setRoyalties(tokenId, receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyaltiesExtension}.\n     */\n    function setRoyaltiesExtension(address extension, address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        _setRoyaltiesExtension(extension, receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getRoyalties}.\n     */\n    function getRoyalties(uint256 tokenId) external view virtual override returns (address payable[] memory, uint256[] memory) {\n        require(_exists(tokenId), \"Nonexistent token\");\n        return _getRoyalties(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFees}.\n     */\n    function getFees(uint256 tokenId) external view virtual override returns (address payable[] memory, uint256[] memory) {\n        require(_exists(tokenId), \"Nonexistent token\");\n        return _getRoyalties(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFeeRecipients}.\n     */\n    function getFeeRecipients(uint256 tokenId) external view virtual override returns (address payable[] memory) {\n        require(_exists(tokenId), \"Nonexistent token\");\n        return _getRoyaltyReceivers(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFeeBps}.\n     */\n    function getFeeBps(uint256 tokenId) external view virtual override returns (uint[] memory) {\n        require(_exists(tokenId), \"Nonexistent token\");\n        return _getRoyaltyBPS(tokenId);\n    }\n    \n    /**\n     * @dev See {ICreatorCore-royaltyInfo}.\n     */\n    function royaltyInfo(uint256 tokenId, uint256 value) external view virtual override returns (address, uint256) {\n        require(_exists(tokenId), \"Nonexistent token\");\n        return _getRoyaltyInfo(tokenId, value);\n    } \n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n        require(_exists(tokenId), \"Nonexistent token\");\n        return _tokenURI(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setApproveTransfer}.\n     */\n    function setApproveTransfer(address extension) external override adminRequired {\n        _setApproveTransferBase(extension);\n    }\n\n    function _tokenExtension(uint256 tokenId) internal view override returns(address) {\n        uint16 extensionIndex = uint16(_tokenData[tokenId].data);\n        if (extensionIndex == 0) return address(0);\n        return _indexToExtension[extensionIndex];\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-tokenData}.\n     */\n    function tokenData(uint256 tokenId) external view returns (uint80) {\n        return uint80(_tokenData[tokenId].data >> 16);\n    }\n}",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/ERC721CreatorImplementation.sol",
  "ast": {
    "absolutePath": "project:/contracts/ERC721CreatorImplementation.sol",
    "exportedSymbols": {
      "Address": [
        1911
      ],
      "AddressUpgradeable": [
        1002
      ],
      "AdminControlUpgradeable": [
        371
      ],
      "ContextUpgradeable": [
        1044
      ],
      "CreatorCore": [
        13473
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "ERC721Core": [
        20641
      ],
      "ERC721CreatorCore": [
        14289
      ],
      "ERC721CreatorImplementation": [
        11073
      ],
      "ERC721Upgradeable": [
        21034
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC165": [
        2338
      ],
      "IERC721": [
        1505
      ],
      "IERC721CreatorCore": [
        15407
      ],
      "IERC721CreatorExtensionApproveTransfer": [
        16483
      ],
      "IERC721CreatorExtensionBurnable": [
        16498
      ],
      "IERC721CreatorMintPermissions": [
        18497
      ],
      "IERC721Metadata": [
        1581
      ],
      "IERC721Receiver": [
        1523
      ],
      "Initializable": [
        718
      ],
      "Math": [
        3203
      ],
      "OwnableUpgradeable": [
        549
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 11074,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9780,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:29"
      },
      {
        "absolutePath": "@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol",
        "file": "@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol",
        "id": 9781,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11074,
        "sourceUnit": 372,
        "src": "85:86:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/core/ERC721CreatorCore.sol",
        "file": "./core/ERC721CreatorCore.sol",
        "id": 9782,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11074,
        "sourceUnit": 14290,
        "src": "173:38:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/ERC721/ERC721Upgradeable.sol",
        "file": "./token/ERC721/ERC721Upgradeable.sol",
        "id": 9783,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11074,
        "sourceUnit": 21035,
        "src": "212:46:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 9785,
              "name": "AdminControlUpgradeable",
              "nameLocations": [
                "345:23:29"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 371,
              "src": "345:23:29"
            },
            "id": 9786,
            "nodeType": "InheritanceSpecifier",
            "src": "345:23:29"
          },
          {
            "baseName": {
              "id": 9787,
              "name": "ERC721Upgradeable",
              "nameLocations": [
                "370:17:29"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 21034,
              "src": "370:17:29"
            },
            "id": 9788,
            "nodeType": "InheritanceSpecifier",
            "src": "370:17:29"
          },
          {
            "baseName": {
              "id": 9789,
              "name": "ERC721CreatorCore",
              "nameLocations": [
                "389:17:29"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 14289,
              "src": "389:17:29"
            },
            "id": 9790,
            "nodeType": "InheritanceSpecifier",
            "src": "389:17:29"
          }
        ],
        "canonicalName": "ERC721CreatorImplementation",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 9784,
          "nodeType": "StructuredDocumentation",
          "src": "260:44:29",
          "text": " @dev ERC721Creator implementation"
        },
        "fullyImplemented": true,
        "id": 11073,
        "linearizedBaseContracts": [
          11073,
          14289,
          15407,
          13473,
          21034,
          20641,
          1581,
          1505,
          371,
          2132,
          15197,
          417,
          2338,
          1211,
          549,
          1044,
          718
        ],
        "name": "ERC721CreatorImplementation",
        "nameLocation": "314:27:29",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 9794,
            "libraryName": {
              "id": 9791,
              "name": "EnumerableSet",
              "nameLocations": [
                "419:13:29"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 3816,
              "src": "419:13:29"
            },
            "nodeType": "UsingForDirective",
            "src": "413:49:29",
            "typeName": {
              "id": 9793,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 9792,
                "name": "EnumerableSet.AddressSet",
                "nameLocations": [
                  "437:13:29",
                  "451:10:29"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 3529,
                "src": "437:24:29"
              },
              "referencedDeclaration": 3529,
              "src": "437:24:29",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_AddressSet_$3529_storage_ptr",
                "typeString": "struct EnumerableSet.AddressSet"
              }
            }
          },
          {
            "body": {
              "id": 9812,
              "nodeType": "Block",
              "src": "586:72:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9805,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9797,
                        "src": "610:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "id": 9806,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9799,
                        "src": "617:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 9804,
                      "name": "__ERC721_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 21015,
                      "src": "596:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 9807,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "596:29:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9808,
                  "nodeType": "ExpressionStatement",
                  "src": "596:29:29"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 9809,
                      "name": "__Ownable_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 444,
                      "src": "635:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 9810,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "635:16:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9811,
                  "nodeType": "ExpressionStatement",
                  "src": "635:16:29"
                }
              ]
            },
            "documentation": {
              "id": 9795,
              "nodeType": "StructuredDocumentation",
              "src": "468:30:29",
              "text": " Initializer"
            },
            "functionSelector": "4cd88b76",
            "id": 9813,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9802,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9801,
                  "name": "initializer",
                  "nameLocations": [
                    "574:11:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 620,
                  "src": "574:11:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "574:11:29"
              }
            ],
            "name": "initialize",
            "nameLocation": "512:10:29",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9797,
                  "mutability": "mutable",
                  "name": "_name",
                  "nameLocation": "537:5:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9813,
                  "src": "523:19:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9796,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "523:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9799,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "558:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9813,
                  "src": "544:21:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9798,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "522:44:29"
            },
            "returnParameters": {
              "id": 9803,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "586:0:29"
            },
            "scope": 11073,
            "src": "503:155:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              228,
              13923,
              19882
            ],
            "body": {
              "id": 9840,
              "nodeType": "Block",
              "src": "872:175:29",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 9838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 9833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "id": 9827,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9816,
                            "src": "925:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 9825,
                            "name": "ERC721CreatorCore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14289,
                            "src": "889:17:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC721CreatorCore_$14289_$",
                              "typeString": "type(contract ERC721CreatorCore)"
                            }
                          },
                          "id": 9826,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "907:17:29",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13923,
                          "src": "889:35:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 9828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "889:48:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "arguments": [
                          {
                            "id": 9831,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9816,
                            "src": "970:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 9829,
                            "name": "ERC721Core",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "941:10:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC721Core_$20641_$",
                              "typeString": "type(contract ERC721Core)"
                            }
                          },
                          "id": 9830,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "952:17:29",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19882,
                          "src": "941:28:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 9832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "941:41:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "889:93:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 9836,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9816,
                          "src": "1028:11:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 9834,
                          "name": "AdminControlUpgradeable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 371,
                          "src": "986:23:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_AdminControlUpgradeable_$371_$",
                            "typeString": "type(contract AdminControlUpgradeable)"
                          }
                        },
                        "id": 9835,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1010:17:29",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 228,
                        "src": "986:41:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 9837,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "986:54:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "889:151:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 9824,
                  "id": 9839,
                  "nodeType": "Return",
                  "src": "882:158:29"
                }
              ]
            },
            "documentation": {
              "id": 9814,
              "nodeType": "StructuredDocumentation",
              "src": "664:56:29",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 9841,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "734:17:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9821,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 9818,
                  "name": "ERC721Core",
                  "nameLocations": [
                    "801:10:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 20641,
                  "src": "801:10:29"
                },
                {
                  "id": 9819,
                  "name": "ERC721CreatorCore",
                  "nameLocations": [
                    "813:17:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 14289,
                  "src": "813:17:29"
                },
                {
                  "id": 9820,
                  "name": "AdminControlUpgradeable",
                  "nameLocations": [
                    "832:23:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 371,
                  "src": "832:23:29"
                }
              ],
              "src": "792:64:29"
            },
            "parameters": {
              "id": 9817,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9816,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "759:11:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9841,
                  "src": "752:18:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 9815,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "752:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "751:20:29"
            },
            "returnParameters": {
              "id": 9824,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9823,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9841,
                  "src": "866:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 9822,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "866:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "865:6:29"
            },
            "scope": 11073,
            "src": "725:322:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              20627
            ],
            "body": {
              "id": 9863,
              "nodeType": "Block",
              "src": "1165:66:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9854,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9843,
                        "src": "1192:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9855,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9845,
                        "src": "1198:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9856,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9847,
                        "src": "1202:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 9859,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9849,
                            "src": "1218:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 9858,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1211:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint16_$",
                            "typeString": "type(uint16)"
                          },
                          "typeName": {
                            "id": 9857,
                            "name": "uint16",
                            "nodeType": "ElementaryTypeName",
                            "src": "1211:6:29",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 9860,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1211:12:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      ],
                      "id": 9853,
                      "name": "_approveTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        14142,
                        14171,
                        14239
                      ],
                      "referencedDeclaration": 14171,
                      "src": "1175:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint16_$returns$__$",
                        "typeString": "function (address,address,uint256,uint16)"
                      }
                    },
                    "id": 9861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1175:49:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9862,
                  "nodeType": "ExpressionStatement",
                  "src": "1175:49:29"
                }
              ]
            },
            "id": 9864,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nameLocation": "1062:20:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9851,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1156:8:29"
            },
            "parameters": {
              "id": 9850,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9843,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1091:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9864,
                  "src": "1083:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9842,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1083:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9845,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1105:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9864,
                  "src": "1097:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9844,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1097:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9847,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "1117:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9864,
                  "src": "1109:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9846,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1109:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9849,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1133:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9864,
                  "src": "1126:11:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint96",
                    "typeString": "uint96"
                  },
                  "typeName": {
                    "id": 9848,
                    "name": "uint96",
                    "nodeType": "ElementaryTypeName",
                    "src": "1126:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint96",
                      "typeString": "uint96"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1082:56:29"
            },
            "returnParameters": {
              "id": 9852,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1165:0:29"
            },
            "scope": 11073,
            "src": "1053:178:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              14988
            ],
            "body": {
              "id": 9885,
              "nodeType": "Block",
              "src": "1406:102:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9876,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9867,
                        "src": "1436:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 9875,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1416:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 9877,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1416:30:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9878,
                  "nodeType": "ExpressionStatement",
                  "src": "1416:30:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9880,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9867,
                        "src": "1475:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9881,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9869,
                        "src": "1486:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 9882,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1495:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9879,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        14288
                      ],
                      "referencedDeclaration": 14288,
                      "src": "1456:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 9883,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1456:45:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9884,
                  "nodeType": "ExpressionStatement",
                  "src": "1456:45:29"
                }
              ]
            },
            "documentation": {
              "id": 9865,
              "nodeType": "StructuredDocumentation",
              "src": "1237:61:29",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3071a0f9",
            "id": 9886,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9873,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9872,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1392:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1392:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "1392:13:29"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1312:17:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9871,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1383:8:29"
            },
            "parameters": {
              "id": 9870,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9867,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1338:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9886,
                  "src": "1330:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9866,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1330:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9869,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1365:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9886,
                  "src": "1349:23:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9868,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1349:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1329:44:29"
            },
            "returnParameters": {
              "id": 9874,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1406:0:29"
            },
            "scope": 11073,
            "src": "1303:205:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              14998
            ],
            "body": {
              "id": 9909,
              "nodeType": "Block",
              "src": "1706:113:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9900,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9889,
                        "src": "1736:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 9899,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1716:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 9901,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1716:30:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9902,
                  "nodeType": "ExpressionStatement",
                  "src": "1716:30:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9904,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9889,
                        "src": "1775:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9905,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9891,
                        "src": "1786:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 9906,
                        "name": "baseURIIdentical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9893,
                        "src": "1795:16:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9903,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        14288
                      ],
                      "referencedDeclaration": 14288,
                      "src": "1756:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 9907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1756:56:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9908,
                  "nodeType": "ExpressionStatement",
                  "src": "1756:56:29"
                }
              ]
            },
            "documentation": {
              "id": 9887,
              "nodeType": "StructuredDocumentation",
              "src": "1514:61:29",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3f0f37f6",
            "id": 9910,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9897,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9896,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1692:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1692:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "1692:13:29"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1589:17:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9895,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1683:8:29"
            },
            "parameters": {
              "id": 9894,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9889,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1615:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9910,
                  "src": "1607:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9888,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1607:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9891,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1642:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9910,
                  "src": "1626:23:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9890,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1626:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9893,
                  "mutability": "mutable",
                  "name": "baseURIIdentical",
                  "nameLocation": "1656:16:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9910,
                  "src": "1651:21:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 9892,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1651:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1606:67:29"
            },
            "returnParameters": {
              "id": 9898,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1706:0:29"
            },
            "scope": 11073,
            "src": "1580:239:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15004
            ],
            "body": {
              "id": 9923,
              "nodeType": "Block",
              "src": "1974:48:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9920,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9913,
                        "src": "2005:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 9919,
                      "name": "_unregisterExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12708,
                      "src": "1984:20:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 9921,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1984:31:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9922,
                  "nodeType": "ExpressionStatement",
                  "src": "1984:31:29"
                }
              ]
            },
            "documentation": {
              "id": 9911,
              "nodeType": "StructuredDocumentation",
              "src": "1826:63:29",
              "text": " @dev See {ICreatorCore-unregisterExtension}."
            },
            "functionSelector": "ce8aee9d",
            "id": 9924,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9917,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9916,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1960:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1960:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "1960:13:29"
              }
            ],
            "name": "unregisterExtension",
            "nameLocation": "1903:19:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9915,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1951:8:29"
            },
            "parameters": {
              "id": 9914,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9913,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1931:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9924,
                  "src": "1923:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9912,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1923:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1922:19:29"
            },
            "returnParameters": {
              "id": 9918,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1974:0:29"
            },
            "scope": 11073,
            "src": "1894:128:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15010
            ],
            "body": {
              "id": 9937,
              "nodeType": "Block",
              "src": "2174:47:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9934,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9927,
                        "src": "2204:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 9933,
                      "name": "_blacklistExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12769,
                      "src": "2184:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 9935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2184:30:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9936,
                  "nodeType": "ExpressionStatement",
                  "src": "2184:30:29"
                }
              ]
            },
            "documentation": {
              "id": 9925,
              "nodeType": "StructuredDocumentation",
              "src": "2028:62:29",
              "text": " @dev See {ICreatorCore-blacklistExtension}."
            },
            "functionSelector": "02e7afb7",
            "id": 9938,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9931,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9930,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2160:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "2160:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "2160:13:29"
              }
            ],
            "name": "blacklistExtension",
            "nameLocation": "2104:18:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9929,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2151:8:29"
            },
            "parameters": {
              "id": 9928,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9927,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "2131:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9938,
                  "src": "2123:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9926,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2123:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2122:19:29"
            },
            "returnParameters": {
              "id": 9932,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2174:0:29"
            },
            "scope": 11073,
            "src": "2095:126:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15016
            ],
            "body": {
              "id": 9953,
              "nodeType": "Block",
              "src": "2373:82:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 9945,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2383:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 9946,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2383:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9947,
                  "nodeType": "ExpressionStatement",
                  "src": "2383:18:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9949,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9941,
                        "src": "2437:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 9950,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2442:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9948,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2411:25:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 9951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2411:37:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9952,
                  "nodeType": "ExpressionStatement",
                  "src": "2411:37:29"
                }
              ]
            },
            "documentation": {
              "id": 9939,
              "nodeType": "StructuredDocumentation",
              "src": "2227:68:29",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "3e6134b8",
            "id": 9954,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2309:24:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9943,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2364:8:29"
            },
            "parameters": {
              "id": 9942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9941,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "2350:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9954,
                  "src": "2334:19:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9940,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2334:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2333:21:29"
            },
            "returnParameters": {
              "id": 9944,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2373:0:29"
            },
            "scope": 11073,
            "src": "2300:155:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15024
            ],
            "body": {
              "id": 9971,
              "nodeType": "Block",
              "src": "2623:86:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 9963,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2633:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 9964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2633:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9965,
                  "nodeType": "ExpressionStatement",
                  "src": "2633:18:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9967,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9957,
                        "src": "2687:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 9968,
                        "name": "identical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9959,
                        "src": "2692:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9966,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2661:25:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 9969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2661:41:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9970,
                  "nodeType": "ExpressionStatement",
                  "src": "2661:41:29"
                }
              ]
            },
            "documentation": {
              "id": 9955,
              "nodeType": "StructuredDocumentation",
              "src": "2461:68:29",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "82dcc0c8",
            "id": 9972,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2543:24:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9961,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2614:8:29"
            },
            "parameters": {
              "id": 9960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9957,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "2584:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9972,
                  "src": "2568:19:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9956,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2568:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9959,
                  "mutability": "mutable",
                  "name": "identical",
                  "nameLocation": "2594:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9972,
                  "src": "2589:14:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 9958,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2589:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2567:37:29"
            },
            "returnParameters": {
              "id": 9962,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2623:0:29"
            },
            "scope": 11073,
            "src": "2534:175:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15030
            ],
            "body": {
              "id": 9986,
              "nodeType": "Block",
              "src": "2868:80:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 9979,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2878:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 9980,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2878:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9981,
                  "nodeType": "ExpressionStatement",
                  "src": "2878:18:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9983,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9975,
                        "src": "2934:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 9982,
                      "name": "_setTokenURIPrefixExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12806,
                      "src": "2906:27:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 9984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2906:35:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9985,
                  "nodeType": "ExpressionStatement",
                  "src": "2906:35:29"
                }
              ]
            },
            "documentation": {
              "id": 9973,
              "nodeType": "StructuredDocumentation",
              "src": "2715:70:29",
              "text": " @dev See {ICreatorCore-setTokenURIPrefixExtension}."
            },
            "functionSelector": "66d1e9d0",
            "id": 9987,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIPrefixExtension",
            "nameLocation": "2799:26:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9977,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2859:8:29"
            },
            "parameters": {
              "id": 9976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9975,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "2842:6:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9987,
                  "src": "2826:22:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9974,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2826:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2825:24:29"
            },
            "returnParameters": {
              "id": 9978,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2868:0:29"
            },
            "scope": 11073,
            "src": "2790:158:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15038
            ],
            "body": {
              "id": 10004,
              "nodeType": "Block",
              "src": "3109:80:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 9996,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3119:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 9997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3119:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9998,
                  "nodeType": "ExpressionStatement",
                  "src": "3119:18:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10000,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9990,
                        "src": "3169:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 10001,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9992,
                        "src": "3178:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 9999,
                      "name": "_setTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12831,
                      "src": "3147:21:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 10002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3147:35:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10003,
                  "nodeType": "ExpressionStatement",
                  "src": "3147:35:29"
                }
              ]
            },
            "documentation": {
              "id": 9988,
              "nodeType": "StructuredDocumentation",
              "src": "2954:64:29",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "e92a89f6",
            "id": 10005,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3032:20:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9994,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3100:8:29"
            },
            "parameters": {
              "id": 9993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9990,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "3061:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10005,
                  "src": "3053:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9989,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3053:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9992,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "3086:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10005,
                  "src": "3070:19:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9991,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3070:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3052:38:29"
            },
            "returnParameters": {
              "id": 9995,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3109:0:29"
            },
            "scope": 11073,
            "src": "3023:166:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15048
            ],
            "body": {
              "id": 10050,
              "nodeType": "Block",
              "src": "3365:244:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10016,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3375:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 10017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3375:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10018,
                  "nodeType": "ExpressionStatement",
                  "src": "3375:18:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10024,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 10020,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10009,
                            "src": "3411:8:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 10021,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3420:6:29",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3411:15:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 10022,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10012,
                            "src": "3430:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 10023,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3435:6:29",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3430:11:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3411:30:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 10025,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3443:15:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        },
                        "value": "Invalid input"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        }
                      ],
                      "id": 10019,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3403:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10026,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3403:56:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10027,
                  "nodeType": "ExpressionStatement",
                  "src": "3403:56:29"
                },
                {
                  "body": {
                    "id": 10048,
                    "nodeType": "Block",
                    "src": "3504:99:29",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 10036,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10009,
                                "src": "3540:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 10038,
                              "indexExpression": {
                                "id": 10037,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10029,
                                "src": "3549:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3540:11:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 10039,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10012,
                                "src": "3553:4:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 10041,
                              "indexExpression": {
                                "id": 10040,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10029,
                                "src": "3558:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3553:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 10035,
                            "name": "_setTokenURIExtension",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12831,
                            "src": "3518:21:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 10042,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3518:43:29",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10043,
                        "nodeType": "ExpressionStatement",
                        "src": "3518:43:29"
                      },
                      {
                        "id": 10047,
                        "nodeType": "UncheckedBlock",
                        "src": "3575:18:29",
                        "statements": [
                          {
                            "expression": {
                              "id": 10045,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "3587:3:29",
                              "subExpression": {
                                "id": 10044,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10029,
                                "src": "3589:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10046,
                            "nodeType": "ExpressionStatement",
                            "src": "3587:3:29"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10034,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10031,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10029,
                      "src": "3482:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 10032,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10009,
                        "src": "3486:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 10033,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3495:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3486:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3482:19:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10049,
                  "initializationExpression": {
                    "assignments": [
                      10029
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10029,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3479:1:29",
                        "nodeType": "VariableDeclaration",
                        "scope": 10049,
                        "src": "3474:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10028,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "3474:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 10030,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3474:6:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "3469:134:29"
                }
              ]
            },
            "documentation": {
              "id": 10006,
              "nodeType": "StructuredDocumentation",
              "src": "3195:64:29",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "61e5bc6b",
            "id": 10051,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3273:20:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10014,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3356:8:29"
            },
            "parameters": {
              "id": 10013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10009,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "3313:8:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10051,
                  "src": "3294:27:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10007,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3294:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10008,
                    "nodeType": "ArrayTypeName",
                    "src": "3294:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10012,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "3341:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10051,
                  "src": "3323:22:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10010,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "3323:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 10011,
                    "nodeType": "ArrayTypeName",
                    "src": "3323:8:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3293:53:29"
            },
            "returnParameters": {
              "id": 10015,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3365:0:29"
            },
            "scope": 11073,
            "src": "3264:345:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15054
            ],
            "body": {
              "id": 10064,
              "nodeType": "Block",
              "src": "3757:38:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10061,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10054,
                        "src": "3784:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 10060,
                      "name": "_setBaseTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12847,
                      "src": "3767:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 10062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3767:21:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10063,
                  "nodeType": "ExpressionStatement",
                  "src": "3767:21:29"
                }
              ]
            },
            "documentation": {
              "id": 10052,
              "nodeType": "StructuredDocumentation",
              "src": "3615:59:29",
              "text": " @dev See {ICreatorCore-setBaseTokenURI}."
            },
            "functionSelector": "30176e13",
            "id": 10065,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10058,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10057,
                  "name": "adminRequired",
                  "nameLocations": [
                    "3743:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "3743:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "3743:13:29"
              }
            ],
            "name": "setBaseTokenURI",
            "nameLocation": "3688:15:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10056,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3734:8:29"
            },
            "parameters": {
              "id": 10055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10054,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "3720:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10065,
                  "src": "3704:19:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10053,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3704:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3703:21:29"
            },
            "returnParameters": {
              "id": 10059,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3757:0:29"
            },
            "scope": 11073,
            "src": "3679:116:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15060
            ],
            "body": {
              "id": 10078,
              "nodeType": "Block",
              "src": "3950:43:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10075,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10068,
                        "src": "3979:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 10074,
                      "name": "_setTokenURIPrefix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12863,
                      "src": "3960:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 10076,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3960:26:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10077,
                  "nodeType": "ExpressionStatement",
                  "src": "3960:26:29"
                }
              ]
            },
            "documentation": {
              "id": 10066,
              "nodeType": "StructuredDocumentation",
              "src": "3801:61:29",
              "text": " @dev See {ICreatorCore-setTokenURIPrefix}."
            },
            "functionSelector": "99e0dd7c",
            "id": 10079,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10072,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10071,
                  "name": "adminRequired",
                  "nameLocations": [
                    "3936:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "3936:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "3936:13:29"
              }
            ],
            "name": "setTokenURIPrefix",
            "nameLocation": "3876:17:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10070,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3927:8:29"
            },
            "parameters": {
              "id": 10069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10068,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "3910:6:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10079,
                  "src": "3894:22:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10067,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3894:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3893:24:29"
            },
            "returnParameters": {
              "id": 10073,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3950:0:29"
            },
            "scope": 11073,
            "src": "3867:126:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15068
            ],
            "body": {
              "id": 10095,
              "nodeType": "Block",
              "src": "4150:43:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10091,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10082,
                        "src": "4173:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 10092,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10084,
                        "src": "4182:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 10090,
                      "name": "_setTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12898,
                      "src": "4160:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 10093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4160:26:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10094,
                  "nodeType": "ExpressionStatement",
                  "src": "4160:26:29"
                }
              ]
            },
            "documentation": {
              "id": 10080,
              "nodeType": "StructuredDocumentation",
              "src": "3999:55:29",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "162094c4",
            "id": 10096,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10088,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10087,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4136:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4136:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "4136:13:29"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4068:11:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10086,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4127:8:29"
            },
            "parameters": {
              "id": 10085,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10082,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "4088:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10096,
                  "src": "4080:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10081,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4080:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10084,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "4113:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10096,
                  "src": "4097:19:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10083,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4097:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4079:38:29"
            },
            "returnParameters": {
              "id": 10089,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4150:0:29"
            },
            "scope": 11073,
            "src": "4059:134:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15078
            ],
            "body": {
              "id": 10140,
              "nodeType": "Block",
              "src": "4365:207:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10114,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 10110,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10100,
                            "src": "4383:8:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 10111,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4392:6:29",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4383:15:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 10112,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10103,
                            "src": "4402:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 10113,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4407:6:29",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4402:11:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4383:30:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 10115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4415:15:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        },
                        "value": "Invalid input"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        }
                      ],
                      "id": 10109,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4375:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10116,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4375:56:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10117,
                  "nodeType": "ExpressionStatement",
                  "src": "4375:56:29"
                },
                {
                  "body": {
                    "id": 10138,
                    "nodeType": "Block",
                    "src": "4476:90:29",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 10126,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10100,
                                "src": "4503:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 10128,
                              "indexExpression": {
                                "id": 10127,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10119,
                                "src": "4512:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4503:11:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 10129,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10103,
                                "src": "4516:4:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 10131,
                              "indexExpression": {
                                "id": 10130,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10119,
                                "src": "4521:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4516:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 10125,
                            "name": "_setTokenURI",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12898,
                            "src": "4490:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 10132,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4490:34:29",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10133,
                        "nodeType": "ExpressionStatement",
                        "src": "4490:34:29"
                      },
                      {
                        "id": 10137,
                        "nodeType": "UncheckedBlock",
                        "src": "4538:18:29",
                        "statements": [
                          {
                            "expression": {
                              "id": 10135,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "4550:3:29",
                              "subExpression": {
                                "id": 10134,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10119,
                                "src": "4552:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10136,
                            "nodeType": "ExpressionStatement",
                            "src": "4550:3:29"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10124,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10121,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10119,
                      "src": "4454:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 10122,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10100,
                        "src": "4458:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 10123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4467:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "4458:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4454:19:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10139,
                  "initializationExpression": {
                    "assignments": [
                      10119
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10119,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "4451:1:29",
                        "nodeType": "VariableDeclaration",
                        "scope": 10139,
                        "src": "4446:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10118,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4446:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 10120,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4446:6:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "4441:125:29"
                }
              ]
            },
            "documentation": {
              "id": 10097,
              "nodeType": "StructuredDocumentation",
              "src": "4199:55:29",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "aafb2d44",
            "id": 10141,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10107,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10106,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4351:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4351:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "4351:13:29"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4268:11:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10105,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4342:8:29"
            },
            "parameters": {
              "id": 10104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10100,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "4299:8:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10141,
                  "src": "4280:27:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10098,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4280:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10099,
                    "nodeType": "ArrayTypeName",
                    "src": "4280:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10103,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "4327:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10141,
                  "src": "4309:22:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10101,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "4309:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 10102,
                    "nodeType": "ArrayTypeName",
                    "src": "4309:8:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4279:53:29"
            },
            "returnParameters": {
              "id": 10108,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4365:0:29"
            },
            "scope": 11073,
            "src": "4259:313:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15086
            ],
            "body": {
              "id": 10157,
              "nodeType": "Block",
              "src": "4745:60:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10153,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10144,
                        "src": "4775:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10154,
                        "name": "permissions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10146,
                        "src": "4786:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 10152,
                      "name": "_setMintPermissions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14010,
                      "src": "4755:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address)"
                      }
                    },
                    "id": 10155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4755:43:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10156,
                  "nodeType": "ExpressionStatement",
                  "src": "4755:43:29"
                }
              ]
            },
            "documentation": {
              "id": 10142,
              "nodeType": "StructuredDocumentation",
              "src": "4578:62:29",
              "text": " @dev See {ICreatorCore-setMintPermissions}."
            },
            "functionSelector": "f0cdc499",
            "id": 10158,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10150,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10149,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4731:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4731:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "4731:13:29"
              }
            ],
            "name": "setMintPermissions",
            "nameLocation": "4654:18:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10148,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4722:8:29"
            },
            "parameters": {
              "id": 10147,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10144,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "4681:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10158,
                  "src": "4673:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10143,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4673:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10146,
                  "mutability": "mutable",
                  "name": "permissions",
                  "nameLocation": "4700:11:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10158,
                  "src": "4692:19:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10145,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4692:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4672:40:29"
            },
            "returnParameters": {
              "id": 10151,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4745:0:29"
            },
            "scope": 11073,
            "src": "4645:160:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15296
            ],
            "body": {
              "id": 10177,
              "nodeType": "Block",
              "src": "4972:44:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10172,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10161,
                        "src": "4999:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 10173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5003:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "hexValue": "30",
                        "id": 10174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5007:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 10171,
                      "name": "_mintBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10377,
                      "src": "4989:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint256) returns (uint256)"
                      }
                    },
                    "id": 10175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4989:20:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10170,
                  "id": 10176,
                  "nodeType": "Return",
                  "src": "4982:27:29"
                }
              ]
            },
            "documentation": {
              "id": 10159,
              "nodeType": "StructuredDocumentation",
              "src": "4811:58:29",
              "text": " @dev See {IERC721CreatorCore-mintBase}."
            },
            "functionSelector": "72ff03d3",
            "id": 10178,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10165,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10164,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "4928:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "4928:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "4928:12:29"
              },
              {
                "id": 10167,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10166,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4941:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4941:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "4941:13:29"
              }
            ],
            "name": "mintBase",
            "nameLocation": "4883:8:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10163,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4919:8:29"
            },
            "parameters": {
              "id": 10162,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10161,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "4900:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10178,
                  "src": "4892:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10160,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4892:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4891:12:29"
            },
            "returnParameters": {
              "id": 10170,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10169,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10178,
                  "src": "4963:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10168,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4963:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4962:9:29"
            },
            "scope": 11073,
            "src": "4874:142:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15306
            ],
            "body": {
              "id": 10199,
              "nodeType": "Block",
              "src": "5204:45:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10194,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10181,
                        "src": "5231:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10195,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10183,
                        "src": "5235:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 10196,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5240:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 10193,
                      "name": "_mintBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10377,
                      "src": "5221:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint256) returns (uint256)"
                      }
                    },
                    "id": 10197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5221:21:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10192,
                  "id": 10198,
                  "nodeType": "Return",
                  "src": "5214:28:29"
                }
              ]
            },
            "documentation": {
              "id": 10179,
              "nodeType": "StructuredDocumentation",
              "src": "5022:58:29",
              "text": " @dev See {IERC721CreatorCore-mintBase}."
            },
            "functionSelector": "7884af44",
            "id": 10200,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10187,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10186,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5160:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5160:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "5160:12:29"
              },
              {
                "id": 10189,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10188,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5173:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5173:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "5173:13:29"
              }
            ],
            "name": "mintBase",
            "nameLocation": "5094:8:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10185,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5151:8:29"
            },
            "parameters": {
              "id": 10184,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10181,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5111:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10200,
                  "src": "5103:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10180,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5103:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10183,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "5131:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10200,
                  "src": "5115:19:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10182,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5115:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5102:33:29"
            },
            "returnParameters": {
              "id": 10192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10191,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10200,
                  "src": "5195:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10190,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5195:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5194:9:29"
            },
            "scope": 11073,
            "src": "5085:164:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15317
            ],
            "body": {
              "id": 10258,
              "nodeType": "Block",
              "src": "5458:262:29",
              "statements": [
                {
                  "expression": {
                    "id": 10222,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10216,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10214,
                      "src": "5468:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 10220,
                          "name": "count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10205,
                          "src": "5493:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        ],
                        "id": 10219,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "5479:13:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 10217,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5483:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10218,
                          "nodeType": "ArrayTypeName",
                          "src": "5483:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 10221,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5479:20:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "5468:31:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 10223,
                  "nodeType": "ExpressionStatement",
                  "src": "5468:31:29"
                },
                {
                  "assignments": [
                    10225
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10225,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "5517:12:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 10258,
                      "src": "5509:20:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10224,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5509:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10229,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10226,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "5532:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 10227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5544:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "5532:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5509:36:29"
                },
                {
                  "expression": {
                    "id": 10232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10230,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "5555:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 10231,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10205,
                      "src": "5570:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "5555:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10233,
                  "nodeType": "ExpressionStatement",
                  "src": "5555:20:29"
                },
                {
                  "body": {
                    "id": 10256,
                    "nodeType": "Block",
                    "src": "5611:103:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10250,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 10240,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10214,
                              "src": "5625:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 10242,
                            "indexExpression": {
                              "id": 10241,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10235,
                              "src": "5634:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "5625:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 10244,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10203,
                                "src": "5649:2:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "hexValue": "",
                                "id": 10245,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5653:2:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                "value": ""
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10248,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10246,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10225,
                                  "src": "5657:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 10247,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10235,
                                  "src": "5670:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5657:14:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10243,
                              "name": "_mintBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10377,
                              "src": "5639:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint256) returns (uint256)"
                              }
                            },
                            "id": 10249,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5639:33:29",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5625:47:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10251,
                        "nodeType": "ExpressionStatement",
                        "src": "5625:47:29"
                      },
                      {
                        "id": 10255,
                        "nodeType": "UncheckedBlock",
                        "src": "5686:18:29",
                        "statements": [
                          {
                            "expression": {
                              "id": 10253,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "5698:3:29",
                              "subExpression": {
                                "id": 10252,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10235,
                                "src": "5700:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10254,
                            "nodeType": "ExpressionStatement",
                            "src": "5698:3:29"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10239,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10237,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10235,
                      "src": "5599:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 10238,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10205,
                      "src": "5603:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "5599:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10257,
                  "initializationExpression": {
                    "assignments": [
                      10235
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10235,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "5596:1:29",
                        "nodeType": "VariableDeclaration",
                        "scope": 10257,
                        "src": "5591:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10234,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5591:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 10236,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5591:6:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "5586:128:29"
                }
              ]
            },
            "documentation": {
              "id": 10201,
              "nodeType": "StructuredDocumentation",
              "src": "5255:63:29",
              "text": " @dev See {IERC721CreatorCore-mintBaseBatch}."
            },
            "functionSelector": "ad2d0ddd",
            "id": 10259,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10209,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10208,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5396:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5396:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "5396:12:29"
              },
              {
                "id": 10211,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10210,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5409:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5409:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "5409:13:29"
              }
            ],
            "name": "mintBaseBatch",
            "nameLocation": "5332:13:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10207,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5387:8:29"
            },
            "parameters": {
              "id": 10206,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10203,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5354:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10259,
                  "src": "5346:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10202,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5346:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10205,
                  "mutability": "mutable",
                  "name": "count",
                  "nameLocation": "5365:5:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10259,
                  "src": "5358:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 10204,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "5358:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5345:26:29"
            },
            "returnParameters": {
              "id": 10215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10214,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "5448:8:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10259,
                  "src": "5431:25:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10212,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5431:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10213,
                    "nodeType": "ArrayTypeName",
                    "src": "5431:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5430:27:29"
            },
            "scope": 11073,
            "src": "5323:397:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15329
            ],
            "body": {
              "id": 10323,
              "nodeType": "Block",
              "src": "5939:285:29",
              "statements": [
                {
                  "expression": {
                    "id": 10283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10276,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10274,
                      "src": "5949:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 10280,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10265,
                            "src": "5974:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 10281,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "5979:6:29",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "5974:11:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 10279,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "5960:13:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 10277,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5964:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10278,
                          "nodeType": "ArrayTypeName",
                          "src": "5964:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 10282,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5960:26:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "5949:37:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 10284,
                  "nodeType": "ExpressionStatement",
                  "src": "5949:37:29"
                },
                {
                  "assignments": [
                    10286
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10286,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "6004:12:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 10323,
                      "src": "5996:20:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10285,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5996:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10290,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10289,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10287,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "6019:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 10288,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6031:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "6019:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5996:36:29"
                },
                {
                  "expression": {
                    "id": 10294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10291,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "6042:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "expression": {
                        "id": 10292,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10265,
                        "src": "6057:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      },
                      "id": 10293,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6062:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6057:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6042:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10295,
                  "nodeType": "ExpressionStatement",
                  "src": "6042:26:29"
                },
                {
                  "body": {
                    "id": 10321,
                    "nodeType": "Block",
                    "src": "6110:108:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 10303,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10274,
                              "src": "6124:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 10305,
                            "indexExpression": {
                              "id": 10304,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10297,
                              "src": "6133:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6124:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 10307,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10262,
                                "src": "6148:2:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "baseExpression": {
                                  "id": 10308,
                                  "name": "uris",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10265,
                                  "src": "6152:4:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "string calldata[] calldata"
                                  }
                                },
                                "id": 10310,
                                "indexExpression": {
                                  "id": 10309,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10297,
                                  "src": "6157:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "6152:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                }
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10313,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10311,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10286,
                                  "src": "6161:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 10312,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10297,
                                  "src": "6174:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6161:14:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10306,
                              "name": "_mintBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10377,
                              "src": "6138:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint256) returns (uint256)"
                              }
                            },
                            "id": 10314,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6138:38:29",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6124:52:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10316,
                        "nodeType": "ExpressionStatement",
                        "src": "6124:52:29"
                      },
                      {
                        "id": 10320,
                        "nodeType": "UncheckedBlock",
                        "src": "6190:18:29",
                        "statements": [
                          {
                            "expression": {
                              "id": 10318,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "6202:3:29",
                              "subExpression": {
                                "id": 10317,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10297,
                                "src": "6204:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10319,
                            "nodeType": "ExpressionStatement",
                            "src": "6202:3:29"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10299,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10297,
                      "src": "6092:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 10300,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10265,
                        "src": "6096:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      },
                      "id": 10301,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6101:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6096:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6092:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10322,
                  "initializationExpression": {
                    "assignments": [
                      10297
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10297,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "6089:1:29",
                        "nodeType": "VariableDeclaration",
                        "scope": 10322,
                        "src": "6084:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10296,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6084:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 10298,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6084:6:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "6079:139:29"
                }
              ]
            },
            "documentation": {
              "id": 10260,
              "nodeType": "StructuredDocumentation",
              "src": "5726:63:29",
              "text": " @dev See {IERC721CreatorCore-mintBaseBatch}."
            },
            "functionSelector": "7aa15f16",
            "id": 10324,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10269,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10268,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5877:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5877:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "5877:12:29"
              },
              {
                "id": 10271,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10270,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5890:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5890:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "5890:13:29"
              }
            ],
            "name": "mintBaseBatch",
            "nameLocation": "5803:13:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10267,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5868:8:29"
            },
            "parameters": {
              "id": 10266,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10262,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5825:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10324,
                  "src": "5817:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10261,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5817:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10265,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "5847:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10324,
                  "src": "5829:22:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10263,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "5829:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 10264,
                    "nodeType": "ArrayTypeName",
                    "src": "5829:8:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5816:36:29"
            },
            "returnParameters": {
              "id": 10275,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10274,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "5929:8:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10324,
                  "src": "5912:25:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10272,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5912:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10273,
                    "nodeType": "ArrayTypeName",
                    "src": "5912:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5911:27:29"
            },
            "scope": 11073,
            "src": "5794:430:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10376,
              "nodeType": "Block",
              "src": "6388:316:29",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10338,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10336,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10331,
                      "src": "6402:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 10337,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6413:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6402:12:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10347,
                  "nodeType": "IfStatement",
                  "src": "6398:91:29",
                  "trueBody": {
                    "id": 10346,
                    "nodeType": "Block",
                    "src": "6416:73:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10340,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": true,
                          "src": "6430:13:29",
                          "subExpression": {
                            "id": 10339,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "6432:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10341,
                        "nodeType": "ExpressionStatement",
                        "src": "6430:13:29"
                      },
                      {
                        "expression": {
                          "id": 10344,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10342,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10331,
                            "src": "6457:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 10343,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "6467:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6457:21:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10345,
                        "nodeType": "ExpressionStatement",
                        "src": "6457:21:29"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10349,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10327,
                        "src": "6537:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10350,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10331,
                        "src": "6541:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10348,
                      "name": "_preMintBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14052,
                      "src": "6524:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 10351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6524:25:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10352,
                  "nodeType": "ExpressionStatement",
                  "src": "6524:25:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10354,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10327,
                        "src": "6570:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10355,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10331,
                        "src": "6574:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 10356,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6583:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 10353,
                      "name": "_safeMint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20227,
                        20316
                      ],
                      "referencedDeclaration": 20227,
                      "src": "6560:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint96_$returns$__$",
                        "typeString": "function (address,uint256,uint96)"
                      }
                    },
                    "id": 10357,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6560:25:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10358,
                  "nodeType": "ExpressionStatement",
                  "src": "6560:25:29"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10365,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [
                          {
                            "id": 10361,
                            "name": "uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10329,
                            "src": "6606:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 10360,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6600:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 10359,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "6600:5:29",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 10362,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6600:10:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 10363,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6611:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6600:17:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 10364,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6620:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6600:21:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10373,
                  "nodeType": "IfStatement",
                  "src": "6596:77:29",
                  "trueBody": {
                    "id": 10372,
                    "nodeType": "Block",
                    "src": "6623:50:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10370,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 10366,
                              "name": "_tokenURIs",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12456,
                              "src": "6637:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                "typeString": "mapping(uint256 => string storage ref)"
                              }
                            },
                            "id": 10368,
                            "indexExpression": {
                              "id": 10367,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10331,
                              "src": "6648:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6637:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_storage",
                              "typeString": "string storage ref"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 10369,
                            "name": "uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10329,
                            "src": "6659:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "6637:25:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        "id": 10371,
                        "nodeType": "ExpressionStatement",
                        "src": "6637:25:29"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 10374,
                    "name": "tokenId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10331,
                    "src": "6690:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10335,
                  "id": 10375,
                  "nodeType": "Return",
                  "src": "6683:14:29"
                }
              ]
            },
            "documentation": {
              "id": 10325,
              "nodeType": "StructuredDocumentation",
              "src": "6230:52:29",
              "text": " @dev Mint token with no extension"
            },
            "id": 10377,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintBase",
            "nameLocation": "6296:9:29",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10327,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6314:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10377,
                  "src": "6306:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10326,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6306:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10329,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "6332:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10377,
                  "src": "6318:17:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10328,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6318:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10331,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "6345:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10377,
                  "src": "6337:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10330,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6337:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6305:48:29"
            },
            "returnParameters": {
              "id": 10335,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10334,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10377,
                  "src": "6379:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10333,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6379:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6378:9:29"
            },
            "scope": 11073,
            "src": "6287:417:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15337
            ],
            "body": {
              "id": 10398,
              "nodeType": "Block",
              "src": "6867:80:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10388,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "6877:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 10389,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6877:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10390,
                  "nodeType": "ExpressionStatement",
                  "src": "6877:18:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10392,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10380,
                        "src": "6927:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 10393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6931:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "hexValue": "30",
                        "id": 10394,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6935:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "30",
                        "id": 10395,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6938:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 10391,
                      "name": "_mintExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10709,
                      "src": "6912:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                      }
                    },
                    "id": 10396,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6912:28:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10387,
                  "id": 10397,
                  "nodeType": "Return",
                  "src": "6905:35:29"
                }
              ]
            },
            "documentation": {
              "id": 10378,
              "nodeType": "StructuredDocumentation",
              "src": "6710:63:29",
              "text": " @dev See {IERC721CreatorCore-mintExtension}."
            },
            "functionSelector": "2928ca58",
            "id": 10399,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10384,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10383,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "6837:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "6837:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "6837:12:29"
              }
            ],
            "name": "mintExtension",
            "nameLocation": "6787:13:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10382,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6828:8:29"
            },
            "parameters": {
              "id": 10381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10380,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6809:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10399,
                  "src": "6801:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10379,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6801:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6800:12:29"
            },
            "returnParameters": {
              "id": 10387,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10386,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10399,
                  "src": "6858:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10385,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6858:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6857:9:29"
            },
            "scope": 11073,
            "src": "6778:169:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15347
            ],
            "body": {
              "id": 10422,
              "nodeType": "Block",
              "src": "7131:81:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10412,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "7141:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 10413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7141:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10414,
                  "nodeType": "ExpressionStatement",
                  "src": "7141:18:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10416,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10402,
                        "src": "7191:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10417,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10404,
                        "src": "7195:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 10418,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7200:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "30",
                        "id": 10419,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7203:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 10415,
                      "name": "_mintExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10709,
                      "src": "7176:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                      }
                    },
                    "id": 10420,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7176:29:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10411,
                  "id": 10421,
                  "nodeType": "Return",
                  "src": "7169:36:29"
                }
              ]
            },
            "documentation": {
              "id": 10400,
              "nodeType": "StructuredDocumentation",
              "src": "6953:63:29",
              "text": " @dev See {IERC721CreatorCore-mintExtension}."
            },
            "functionSelector": "fe2e1f58",
            "id": 10423,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10408,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10407,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "7101:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "7101:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "7101:12:29"
              }
            ],
            "name": "mintExtension",
            "nameLocation": "7030:13:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10406,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7092:8:29"
            },
            "parameters": {
              "id": 10405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10402,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "7052:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10423,
                  "src": "7044:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10401,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7044:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10404,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "7072:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10423,
                  "src": "7056:19:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10403,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7056:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7043:33:29"
            },
            "returnParameters": {
              "id": 10411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10410,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10423,
                  "src": "7122:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10409,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7122:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7121:9:29"
            },
            "scope": 11073,
            "src": "7021:191:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15357
            ],
            "body": {
              "id": 10446,
              "nodeType": "Block",
              "src": "7388:83:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10436,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "7398:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 10437,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7398:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10438,
                  "nodeType": "ExpressionStatement",
                  "src": "7398:18:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10440,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10426,
                        "src": "7448:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 10441,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7452:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "id": 10442,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10428,
                        "src": "7456:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 10443,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7462:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 10439,
                      "name": "_mintExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10709,
                      "src": "7433:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                      }
                    },
                    "id": 10444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7433:31:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10435,
                  "id": 10445,
                  "nodeType": "Return",
                  "src": "7426:38:29"
                }
              ]
            },
            "documentation": {
              "id": 10424,
              "nodeType": "StructuredDocumentation",
              "src": "7218:63:29",
              "text": " @dev See {IERC721CreatorCore-mintExtension}."
            },
            "functionSelector": "d3973719",
            "id": 10447,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10432,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10431,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "7358:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "7358:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "7358:12:29"
              }
            ],
            "name": "mintExtension",
            "nameLocation": "7295:13:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10430,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7349:8:29"
            },
            "parameters": {
              "id": 10429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10426,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "7317:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10447,
                  "src": "7309:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10425,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7309:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10428,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "7328:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10447,
                  "src": "7321:11:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 10427,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "7321:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7308:25:29"
            },
            "returnParameters": {
              "id": 10435,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10434,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10447,
                  "src": "7379:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10433,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7379:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7378:9:29"
            },
            "scope": 11073,
            "src": "7286:185:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15368
            ],
            "body": {
              "id": 10507,
              "nodeType": "Block",
              "src": "7676:298:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10461,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "7686:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 10462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7686:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10463,
                  "nodeType": "ExpressionStatement",
                  "src": "7686:18:29"
                },
                {
                  "expression": {
                    "id": 10470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10464,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10459,
                      "src": "7714:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 10468,
                          "name": "count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10452,
                          "src": "7739:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        ],
                        "id": 10467,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "7725:13:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 10465,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7729:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10466,
                          "nodeType": "ArrayTypeName",
                          "src": "7729:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 10469,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7725:20:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "7714:31:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 10471,
                  "nodeType": "ExpressionStatement",
                  "src": "7714:31:29"
                },
                {
                  "assignments": [
                    10473
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10473,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "7763:12:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 10507,
                      "src": "7755:20:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10472,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7755:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10477,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10476,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10474,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "7778:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 10475,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7790:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "7778:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7755:36:29"
                },
                {
                  "expression": {
                    "id": 10480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10478,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "7801:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 10479,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10452,
                      "src": "7816:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "7801:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10481,
                  "nodeType": "ExpressionStatement",
                  "src": "7801:20:29"
                },
                {
                  "body": {
                    "id": 10505,
                    "nodeType": "Block",
                    "src": "7857:111:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10499,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 10488,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10459,
                              "src": "7871:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 10490,
                            "indexExpression": {
                              "id": 10489,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10483,
                              "src": "7880:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7871:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 10492,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10450,
                                "src": "7900:2:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "hexValue": "",
                                "id": 10493,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7904:2:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                "value": ""
                              },
                              {
                                "hexValue": "30",
                                "id": 10494,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7908:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10497,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10495,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10473,
                                  "src": "7911:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 10496,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10483,
                                  "src": "7924:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7911:14:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10491,
                              "name": "_mintExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10709,
                              "src": "7885:14:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                              }
                            },
                            "id": 10498,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7885:41:29",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7871:55:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10500,
                        "nodeType": "ExpressionStatement",
                        "src": "7871:55:29"
                      },
                      {
                        "id": 10504,
                        "nodeType": "UncheckedBlock",
                        "src": "7940:18:29",
                        "statements": [
                          {
                            "expression": {
                              "id": 10502,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "7952:3:29",
                              "subExpression": {
                                "id": 10501,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10483,
                                "src": "7954:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10503,
                            "nodeType": "ExpressionStatement",
                            "src": "7952:3:29"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10485,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10483,
                      "src": "7845:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 10486,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10452,
                      "src": "7849:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "7845:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10506,
                  "initializationExpression": {
                    "assignments": [
                      10483
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10483,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "7842:1:29",
                        "nodeType": "VariableDeclaration",
                        "scope": 10506,
                        "src": "7837:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10482,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7837:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 10484,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7837:6:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "7832:136:29"
                }
              ]
            },
            "documentation": {
              "id": 10448,
              "nodeType": "StructuredDocumentation",
              "src": "7477:68:29",
              "text": " @dev See {IERC721CreatorCore-mintExtensionBatch}."
            },
            "functionSelector": "e00aab4b",
            "id": 10508,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10456,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10455,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "7628:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "7628:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "7628:12:29"
              }
            ],
            "name": "mintExtensionBatch",
            "nameLocation": "7559:18:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10454,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7619:8:29"
            },
            "parameters": {
              "id": 10453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10450,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "7586:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10508,
                  "src": "7578:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10449,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7578:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10452,
                  "mutability": "mutable",
                  "name": "count",
                  "nameLocation": "7597:5:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10508,
                  "src": "7590:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 10451,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "7590:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7577:26:29"
            },
            "returnParameters": {
              "id": 10460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10459,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "7666:8:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10508,
                  "src": "7649:25:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10457,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "7649:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10458,
                    "nodeType": "ArrayTypeName",
                    "src": "7649:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7648:27:29"
            },
            "scope": 11073,
            "src": "7550:424:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15380
            ],
            "body": {
              "id": 10574,
              "nodeType": "Block",
              "src": "8189:321:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10523,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "8199:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 10524,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8199:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10525,
                  "nodeType": "ExpressionStatement",
                  "src": "8199:18:29"
                },
                {
                  "expression": {
                    "id": 10533,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10526,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10521,
                      "src": "8227:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 10530,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10514,
                            "src": "8252:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 10531,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8257:6:29",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "8252:11:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 10529,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "8238:13:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 10527,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "8242:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10528,
                          "nodeType": "ArrayTypeName",
                          "src": "8242:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 10532,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8238:26:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "8227:37:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 10534,
                  "nodeType": "ExpressionStatement",
                  "src": "8227:37:29"
                },
                {
                  "assignments": [
                    10536
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10536,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "8282:12:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 10574,
                      "src": "8274:20:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10535,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8274:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10540,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10537,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "8297:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 10538,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8309:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "8297:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8274:36:29"
                },
                {
                  "expression": {
                    "id": 10544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10541,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "8320:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "expression": {
                        "id": 10542,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10514,
                        "src": "8335:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      },
                      "id": 10543,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8340:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8335:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8320:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10545,
                  "nodeType": "ExpressionStatement",
                  "src": "8320:26:29"
                },
                {
                  "body": {
                    "id": 10572,
                    "nodeType": "Block",
                    "src": "8388:116:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10566,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 10553,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10521,
                              "src": "8402:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 10555,
                            "indexExpression": {
                              "id": 10554,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10547,
                              "src": "8411:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8402:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 10557,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10511,
                                "src": "8431:2:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "baseExpression": {
                                  "id": 10558,
                                  "name": "uris",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10514,
                                  "src": "8435:4:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "string calldata[] calldata"
                                  }
                                },
                                "id": 10560,
                                "indexExpression": {
                                  "id": 10559,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10547,
                                  "src": "8440:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8435:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                }
                              },
                              {
                                "hexValue": "30",
                                "id": 10561,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8444:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10564,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10562,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10536,
                                  "src": "8447:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 10563,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10547,
                                  "src": "8460:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8447:14:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                },
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10556,
                              "name": "_mintExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10709,
                              "src": "8416:14:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                              }
                            },
                            "id": 10565,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8416:46:29",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8402:60:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10567,
                        "nodeType": "ExpressionStatement",
                        "src": "8402:60:29"
                      },
                      {
                        "id": 10571,
                        "nodeType": "UncheckedBlock",
                        "src": "8476:18:29",
                        "statements": [
                          {
                            "expression": {
                              "id": 10569,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "8488:3:29",
                              "subExpression": {
                                "id": 10568,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10547,
                                "src": "8490:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10570,
                            "nodeType": "ExpressionStatement",
                            "src": "8488:3:29"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10549,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10547,
                      "src": "8370:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 10550,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10514,
                        "src": "8374:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      },
                      "id": 10551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8379:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8374:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8370:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10573,
                  "initializationExpression": {
                    "assignments": [
                      10547
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10547,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8367:1:29",
                        "nodeType": "VariableDeclaration",
                        "scope": 10573,
                        "src": "8362:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10546,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8362:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 10548,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8362:6:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "8357:147:29"
                }
              ]
            },
            "documentation": {
              "id": 10509,
              "nodeType": "StructuredDocumentation",
              "src": "7980:68:29",
              "text": " @dev See {IERC721CreatorCore-mintExtensionBatch}."
            },
            "functionSelector": "38e52e78",
            "id": 10575,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10518,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10517,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "8141:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "8141:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "8141:12:29"
              }
            ],
            "name": "mintExtensionBatch",
            "nameLocation": "8062:18:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10516,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8132:8:29"
            },
            "parameters": {
              "id": 10515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10511,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "8089:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10575,
                  "src": "8081:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10510,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8081:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10514,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "8111:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10575,
                  "src": "8093:22:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10512,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "8093:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 10513,
                    "nodeType": "ArrayTypeName",
                    "src": "8093:8:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8080:36:29"
            },
            "returnParameters": {
              "id": 10522,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10521,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "8179:8:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10575,
                  "src": "8162:25:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10519,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "8162:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10520,
                    "nodeType": "ArrayTypeName",
                    "src": "8162:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8161:27:29"
            },
            "scope": 11073,
            "src": "8053:457:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15392
            ],
            "body": {
              "id": 10641,
              "nodeType": "Block",
              "src": "8725:322:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10590,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "8735:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 10591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8735:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10592,
                  "nodeType": "ExpressionStatement",
                  "src": "8735:18:29"
                },
                {
                  "expression": {
                    "id": 10600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10593,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10588,
                      "src": "8763:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 10597,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10581,
                            "src": "8788:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                              "typeString": "uint80[] calldata"
                            }
                          },
                          "id": 10598,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8793:6:29",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "8788:11:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 10596,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "8774:13:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 10594,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "8778:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10595,
                          "nodeType": "ArrayTypeName",
                          "src": "8778:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 10599,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8774:26:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "8763:37:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 10601,
                  "nodeType": "ExpressionStatement",
                  "src": "8763:37:29"
                },
                {
                  "assignments": [
                    10603
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10603,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "8818:12:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 10641,
                      "src": "8810:20:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10602,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8810:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10607,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10604,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "8833:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 10605,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8845:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "8833:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8810:36:29"
                },
                {
                  "expression": {
                    "id": 10611,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10608,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "8856:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "expression": {
                        "id": 10609,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10581,
                        "src": "8871:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                          "typeString": "uint80[] calldata"
                        }
                      },
                      "id": 10610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8876:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8871:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8856:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10612,
                  "nodeType": "ExpressionStatement",
                  "src": "8856:26:29"
                },
                {
                  "body": {
                    "id": 10639,
                    "nodeType": "Block",
                    "src": "8924:117:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10633,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 10620,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10588,
                              "src": "8938:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 10622,
                            "indexExpression": {
                              "id": 10621,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10614,
                              "src": "8947:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8938:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 10624,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10578,
                                "src": "8967:2:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "hexValue": "",
                                "id": 10625,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8971:2:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                "value": ""
                              },
                              {
                                "baseExpression": {
                                  "id": 10626,
                                  "name": "data",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10581,
                                  "src": "8975:4:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                                    "typeString": "uint80[] calldata"
                                  }
                                },
                                "id": 10628,
                                "indexExpression": {
                                  "id": 10627,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10614,
                                  "src": "8980:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8975:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint80",
                                  "typeString": "uint80"
                                }
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10631,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10629,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10603,
                                  "src": "8984:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 10630,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10614,
                                  "src": "8997:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8984:14:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                {
                                  "typeIdentifier": "t_uint80",
                                  "typeString": "uint80"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10623,
                              "name": "_mintExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10709,
                              "src": "8952:14:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                              }
                            },
                            "id": 10632,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8952:47:29",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8938:61:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10634,
                        "nodeType": "ExpressionStatement",
                        "src": "8938:61:29"
                      },
                      {
                        "id": 10638,
                        "nodeType": "UncheckedBlock",
                        "src": "9013:18:29",
                        "statements": [
                          {
                            "expression": {
                              "id": 10636,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "9025:3:29",
                              "subExpression": {
                                "id": 10635,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10614,
                                "src": "9027:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10637,
                            "nodeType": "ExpressionStatement",
                            "src": "9025:3:29"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10619,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10616,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10614,
                      "src": "8906:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 10617,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10581,
                        "src": "8910:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                          "typeString": "uint80[] calldata"
                        }
                      },
                      "id": 10618,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8915:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8910:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8906:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10640,
                  "initializationExpression": {
                    "assignments": [
                      10614
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10614,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8903:1:29",
                        "nodeType": "VariableDeclaration",
                        "scope": 10640,
                        "src": "8898:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10613,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8898:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 10615,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8898:6:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "8893:148:29"
                }
              ]
            },
            "documentation": {
              "id": 10576,
              "nodeType": "StructuredDocumentation",
              "src": "8516:68:29",
              "text": " @dev See {IERC721CreatorCore-mintExtensionBatch}."
            },
            "functionSelector": "4278330e",
            "id": 10642,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10585,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10584,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "8677:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "8677:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "8677:12:29"
              }
            ],
            "name": "mintExtensionBatch",
            "nameLocation": "8598:18:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10583,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8668:8:29"
            },
            "parameters": {
              "id": 10582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10578,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "8625:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10642,
                  "src": "8617:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10577,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8617:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10581,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "8647:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10642,
                  "src": "8629:22:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                    "typeString": "uint80[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10579,
                      "name": "uint80",
                      "nodeType": "ElementaryTypeName",
                      "src": "8629:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint80",
                        "typeString": "uint80"
                      }
                    },
                    "id": 10580,
                    "nodeType": "ArrayTypeName",
                    "src": "8629:8:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint80_$dyn_storage_ptr",
                      "typeString": "uint80[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8616:36:29"
            },
            "returnParameters": {
              "id": 10589,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10588,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "8715:8:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10642,
                  "src": "8698:25:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10586,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "8698:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10587,
                    "nodeType": "ArrayTypeName",
                    "src": "8698:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8697:27:29"
            },
            "scope": 11073,
            "src": "8589:458:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10708,
              "nodeType": "Block",
              "src": "9229:406:29",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10658,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10656,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10651,
                      "src": "9243:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 10657,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9254:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9243:12:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10667,
                  "nodeType": "IfStatement",
                  "src": "9239:91:29",
                  "trueBody": {
                    "id": 10666,
                    "nodeType": "Block",
                    "src": "9257:73:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": true,
                          "src": "9271:13:29",
                          "subExpression": {
                            "id": 10659,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "9273:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10661,
                        "nodeType": "ExpressionStatement",
                        "src": "9271:13:29"
                      },
                      {
                        "expression": {
                          "id": 10664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10662,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10651,
                            "src": "9298:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 10663,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "9308:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "9298:21:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10665,
                        "nodeType": "ExpressionStatement",
                        "src": "9298:21:29"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10669,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10645,
                        "src": "9362:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10670,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10651,
                        "src": "9366:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10668,
                      "name": "_checkMintPermissions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14043,
                      "src": "9340:21:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 10671,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9340:34:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10672,
                  "nodeType": "ExpressionStatement",
                  "src": "9340:34:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10674,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10645,
                        "src": "9427:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10675,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10651,
                        "src": "9431:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10673,
                      "name": "_preMintExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14061,
                      "src": "9409:17:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 10676,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9409:30:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10677,
                  "nodeType": "ExpressionStatement",
                  "src": "9409:30:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10679,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10645,
                        "src": "9460:2:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10680,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10651,
                        "src": "9464:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "id": 10688,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          },
                          "id": 10683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10681,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10649,
                            "src": "9473:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint80",
                              "typeString": "uint80"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "hexValue": "3136",
                            "id": 10682,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9481:2:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "9473:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "baseExpression": {
                            "id": 10684,
                            "name": "_extensionToIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13891,
                            "src": "9486:17:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$",
                              "typeString": "mapping(address => uint16)"
                            }
                          },
                          "id": 10687,
                          "indexExpression": {
                            "expression": {
                              "id": 10685,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "9504:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 10686,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9508:6:29",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "9504:10:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9486:29:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "src": "9473:42:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      ],
                      "id": 10678,
                      "name": "_safeMint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20227,
                        20316
                      ],
                      "referencedDeclaration": 20227,
                      "src": "9450:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint96_$returns$__$",
                        "typeString": "function (address,uint256,uint96)"
                      }
                    },
                    "id": 10689,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9450:66:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10690,
                  "nodeType": "ExpressionStatement",
                  "src": "9450:66:29"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [
                          {
                            "id": 10693,
                            "name": "uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10647,
                            "src": "9537:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 10692,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9531:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 10691,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "9531:5:29",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 10694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9531:10:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 10695,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9542:6:29",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "9531:17:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 10696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9551:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9531:21:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10705,
                  "nodeType": "IfStatement",
                  "src": "9527:77:29",
                  "trueBody": {
                    "id": 10704,
                    "nodeType": "Block",
                    "src": "9554:50:29",
                    "statements": [
                      {
                        "expression": {
                          "id": 10702,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 10698,
                              "name": "_tokenURIs",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12456,
                              "src": "9568:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                "typeString": "mapping(uint256 => string storage ref)"
                              }
                            },
                            "id": 10700,
                            "indexExpression": {
                              "id": 10699,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10651,
                              "src": "9579:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "9568:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_storage",
                              "typeString": "string storage ref"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 10701,
                            "name": "uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10647,
                            "src": "9590:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "9568:25:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        "id": 10703,
                        "nodeType": "ExpressionStatement",
                        "src": "9568:25:29"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 10706,
                    "name": "tokenId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10651,
                    "src": "9621:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10655,
                  "id": 10707,
                  "nodeType": "Return",
                  "src": "9614:14:29"
                }
              ]
            },
            "documentation": {
              "id": 10643,
              "nodeType": "StructuredDocumentation",
              "src": "9057:48:29",
              "text": " @dev Mint token via extension"
            },
            "id": 10709,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintExtension",
            "nameLocation": "9119:14:29",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10645,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "9142:2:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10709,
                  "src": "9134:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10644,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9134:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10647,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "9160:3:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10709,
                  "src": "9146:17:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10646,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9146:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10649,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "9172:4:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10709,
                  "src": "9165:11:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 10648,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "9165:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10651,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "9186:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10709,
                  "src": "9178:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10650,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9178:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9133:61:29"
            },
            "returnParameters": {
              "id": 10655,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10654,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10709,
                  "src": "9220:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10653,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9220:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9219:9:29"
            },
            "scope": 11073,
            "src": "9110:525:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15100
            ],
            "body": {
              "id": 10750,
              "nodeType": "Block",
              "src": "9808:264:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10720,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10712,
                            "src": "9834:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10719,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "9826:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 10721,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9826:16:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 10722,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9844:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 10718,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "9818:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10723,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9818:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10724,
                  "nodeType": "ExpressionStatement",
                  "src": "9818:46:29"
                },
                {
                  "expression": {
                    "id": 10729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10725,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10716,
                      "src": "9874:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 10727,
                          "name": "tokenId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10712,
                          "src": "9902:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 10726,
                        "name": "_tokenExtension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          11053
                        ],
                        "referencedDeclaration": 11053,
                        "src": "9886:15:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                          "typeString": "function (uint256) view returns (address)"
                        }
                      },
                      "id": 10728,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9886:24:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9874:36:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10730,
                  "nodeType": "ExpressionStatement",
                  "src": "9874:36:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 10737,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 10732,
                          "name": "extension",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10716,
                          "src": "9928:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 10735,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9949:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 10734,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9941:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 10733,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "9941:7:29",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 10736,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9941:10:29",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "9928:23:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "id": 10738,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9953:24:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd",
                          "typeString": "literal_string \"No extension for token\""
                        },
                        "value": "No extension for token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd",
                          "typeString": "literal_string \"No extension for token\""
                        }
                      ],
                      "id": 10731,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "9920:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10739,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9920:58:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10740,
                  "nodeType": "ExpressionStatement",
                  "src": "9920:58:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10746,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "9996:43:29",
                        "subExpression": {
                          "arguments": [
                            {
                              "id": 10744,
                              "name": "extension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10716,
                              "src": "10029:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 10742,
                              "name": "_blacklistedExtensions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12440,
                              "src": "9997:22:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AddressSet_$3529_storage",
                                "typeString": "struct EnumerableSet.AddressSet storage ref"
                              }
                            },
                            "id": 10743,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10020:8:29",
                            "memberName": "contains",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3610,
                            "src": "9997:31:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3529_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3529_storage_ptr_$",
                              "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 10745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9997:42:29",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "id": 10747,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10041:23:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621",
                          "typeString": "literal_string \"Extension blacklisted\""
                        },
                        "value": "Extension blacklisted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621",
                          "typeString": "literal_string \"Extension blacklisted\""
                        }
                      ],
                      "id": 10741,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "9988:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9988:77:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10749,
                  "nodeType": "ExpressionStatement",
                  "src": "9988:77:29"
                }
              ]
            },
            "documentation": {
              "id": 10710,
              "nodeType": "StructuredDocumentation",
              "src": "9641:64:29",
              "text": " @dev See {IERC721CreatorCore-tokenExtension}."
            },
            "functionSelector": "239be317",
            "id": 10751,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenExtension",
            "nameLocation": "9719:14:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10714,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9771:8:29"
            },
            "parameters": {
              "id": 10713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10712,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "9742:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10751,
                  "src": "9734:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10711,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9734:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9733:17:29"
            },
            "returnParameters": {
              "id": 10717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10716,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "9797:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10751,
                  "src": "9789:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10715,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9789:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9788:19:29"
            },
            "scope": 11073,
            "src": "9710:362:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15398
            ],
            "body": {
              "id": 10791,
              "nodeType": "Block",
              "src": "10205:266:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 10762,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "10242:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 10763,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10246:6:29",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "10242:10:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 10764,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10754,
                            "src": "10254:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10761,
                          "name": "_isApprovedOrOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20209,
                          "src": "10223:18:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 10765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10223:39:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "id": 10766,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10264:33:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e",
                          "typeString": "literal_string \"Caller is not owner or approved\""
                        },
                        "value": "Caller is not owner or approved"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e",
                          "typeString": "literal_string \"Caller is not owner or approved\""
                        }
                      ],
                      "id": 10760,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10215:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10215:83:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10768,
                  "nodeType": "ExpressionStatement",
                  "src": "10215:83:29"
                },
                {
                  "assignments": [
                    10770
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10770,
                      "mutability": "mutable",
                      "name": "owner",
                      "nameLocation": "10316:5:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 10791,
                      "src": "10308:13:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 10769,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "10308:7:29",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10774,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 10772,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10754,
                        "src": "10332:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10771,
                      "name": "ownerOf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19935,
                      "src": "10324:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view returns (address)"
                      }
                    },
                    "id": 10773,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10324:16:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10308:32:29"
                },
                {
                  "assignments": [
                    10776
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10776,
                      "mutability": "mutable",
                      "name": "extension",
                      "nameLocation": "10358:9:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 10791,
                      "src": "10350:17:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 10775,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "10350:7:29",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10780,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 10778,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10754,
                        "src": "10386:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10777,
                      "name": "_tokenExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        11053
                      ],
                      "referencedDeclaration": 11053,
                      "src": "10370:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view returns (address)"
                      }
                    },
                    "id": 10779,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10370:24:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10350:44:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10782,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10754,
                        "src": "10410:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10781,
                      "name": "_burn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20389,
                      "src": "10404:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 10783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10404:14:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10784,
                  "nodeType": "ExpressionStatement",
                  "src": "10404:14:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10786,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10770,
                        "src": "10438:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10787,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10754,
                        "src": "10445:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 10788,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10776,
                        "src": "10454:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 10785,
                      "name": "_postBurn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14114,
                      "src": "10428:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (address,uint256,address)"
                      }
                    },
                    "id": 10789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10428:36:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10790,
                  "nodeType": "ExpressionStatement",
                  "src": "10428:36:29"
                }
              ]
            },
            "documentation": {
              "id": 10752,
              "nodeType": "StructuredDocumentation",
              "src": "10078:54:29",
              "text": " @dev See {IERC721CreatorCore-burn}."
            },
            "functionSelector": "42966c68",
            "id": 10792,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10758,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10757,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "10192:12:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "10192:12:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "10192:12:29"
              }
            ],
            "name": "burn",
            "nameLocation": "10146:4:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10756,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10183:8:29"
            },
            "parameters": {
              "id": 10755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10754,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "10159:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10792,
                  "src": "10151:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10753,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10151:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10150:17:29"
            },
            "returnParameters": {
              "id": 10759,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10205:0:29"
            },
            "scope": 11073,
            "src": "10137:334:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15110
            ],
            "body": {
              "id": 10814,
              "nodeType": "Block",
              "src": "10662:75:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 10808,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10703:1:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 10807,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "10695:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 10806,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "10695:7:29",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 10809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10695:10:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10810,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10796,
                        "src": "10707:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 10811,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10799,
                        "src": "10718:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 10805,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "10672:22:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 10812,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10672:58:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10813,
                  "nodeType": "ExpressionStatement",
                  "src": "10672:58:29"
                }
              ]
            },
            "documentation": {
              "id": 10793,
              "nodeType": "StructuredDocumentation",
              "src": "10477:56:29",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "332dd1ae",
            "id": 10815,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10803,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10802,
                  "name": "adminRequired",
                  "nameLocations": [
                    "10648:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "10648:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "10648:13:29"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "10547:12:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10801,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10639:8:29"
            },
            "parameters": {
              "id": 10800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10796,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "10587:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10815,
                  "src": "10560:36:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10794,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "10560:15:29",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 10795,
                    "nodeType": "ArrayTypeName",
                    "src": "10560:17:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10799,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "10617:11:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10815,
                  "src": "10598:30:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10797,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10598:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10798,
                    "nodeType": "ArrayTypeName",
                    "src": "10598:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10559:70:29"
            },
            "returnParameters": {
              "id": 10804,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10662:0:29"
            },
            "scope": 11073,
            "src": "10538:199:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15122
            ],
            "body": {
              "id": 10843,
              "nodeType": "Block",
              "src": "10945:119:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10832,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10818,
                            "src": "10971:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10831,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "10963:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 10833,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10963:16:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 10834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10981:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 10830,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10955:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10835,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10955:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10836,
                  "nodeType": "ExpressionStatement",
                  "src": "10955:46:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10838,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10818,
                        "src": "11025:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 10839,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10821,
                        "src": "11034:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 10840,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10824,
                        "src": "11045:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 10837,
                      "name": "_setRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13295,
                      "src": "11011:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 10841,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11011:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10842,
                  "nodeType": "ExpressionStatement",
                  "src": "11011:46:29"
                }
              ]
            },
            "documentation": {
              "id": 10816,
              "nodeType": "StructuredDocumentation",
              "src": "10743:56:29",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "20e4afe2",
            "id": 10844,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10828,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10827,
                  "name": "adminRequired",
                  "nameLocations": [
                    "10931:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "10931:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "10931:13:29"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "10813:12:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10826,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10922:8:29"
            },
            "parameters": {
              "id": 10825,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10818,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "10834:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10844,
                  "src": "10826:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10817,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10826:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10821,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "10870:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10844,
                  "src": "10843:36:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10819,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "10843:15:29",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 10820,
                    "nodeType": "ArrayTypeName",
                    "src": "10843:17:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10824,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "10900:11:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10844,
                  "src": "10881:30:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10822,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10881:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10823,
                    "nodeType": "ArrayTypeName",
                    "src": "10881:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10825:87:29"
            },
            "returnParameters": {
              "id": 10829,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10945:0:29"
            },
            "scope": 11073,
            "src": "10804:260:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15134
            ],
            "body": {
              "id": 10865,
              "nodeType": "Block",
              "src": "11292:74:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10860,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10847,
                        "src": "11325:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 10861,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10850,
                        "src": "11336:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 10862,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10853,
                        "src": "11347:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 10859,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "11302:22:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 10863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11302:57:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10864,
                  "nodeType": "ExpressionStatement",
                  "src": "11302:57:29"
                }
              ]
            },
            "documentation": {
              "id": 10845,
              "nodeType": "StructuredDocumentation",
              "src": "11070:65:29",
              "text": " @dev See {ICreatorCore-setRoyaltiesExtension}."
            },
            "functionSelector": "b0fe87c9",
            "id": 10866,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 10857,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10856,
                  "name": "adminRequired",
                  "nameLocations": [
                    "11278:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "11278:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "11278:13:29"
              }
            ],
            "name": "setRoyaltiesExtension",
            "nameLocation": "11149:21:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10855,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11269:8:29"
            },
            "parameters": {
              "id": 10854,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10847,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "11179:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10866,
                  "src": "11171:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10846,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11171:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10850,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "11217:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10866,
                  "src": "11190:36:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10848,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11190:15:29",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 10849,
                    "nodeType": "ArrayTypeName",
                    "src": "11190:17:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10853,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "11247:11:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10866,
                  "src": "11228:30:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10851,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11228:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10852,
                    "nodeType": "ArrayTypeName",
                    "src": "11228:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11170:89:29"
            },
            "returnParameters": {
              "id": 10858,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11292:0:29"
            },
            "scope": 11073,
            "src": "11140:226:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15146
            ],
            "body": {
              "id": 10890,
              "nodeType": "Block",
              "src": "11556:102:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10881,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10869,
                            "src": "11582:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10880,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "11574:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 10882,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11574:16:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 10883,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11592:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 10879,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11566:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11566:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10885,
                  "nodeType": "ExpressionStatement",
                  "src": "11566:46:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10887,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10869,
                        "src": "11643:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10886,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "11629:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory,uint256[] memory)"
                      }
                    },
                    "id": 10888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11629:22:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                      "typeString": "tuple(address payable[] memory,uint256[] memory)"
                    }
                  },
                  "functionReturnParameters": 10878,
                  "id": 10889,
                  "nodeType": "Return",
                  "src": "11622:29:29"
                }
              ]
            },
            "documentation": {
              "id": 10867,
              "nodeType": "StructuredDocumentation",
              "src": "11372:56:29",
              "text": " @dev See {ICreatorCore-getRoyalties}."
            },
            "functionSelector": "bb3bafd6",
            "id": 10891,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRoyalties",
            "nameLocation": "11442:12:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10871,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11494:8:29"
            },
            "parameters": {
              "id": 10870,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10869,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11463:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10891,
                  "src": "11455:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10868,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11455:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11454:17:29"
            },
            "returnParameters": {
              "id": 10878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10874,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10891,
                  "src": "11512:24:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10872,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11512:15:29",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 10873,
                    "nodeType": "ArrayTypeName",
                    "src": "11512:17:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10877,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10891,
                  "src": "11538:16:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10875,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11538:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10876,
                    "nodeType": "ArrayTypeName",
                    "src": "11538:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11511:44:29"
            },
            "scope": 11073,
            "src": "11433:225:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15173
            ],
            "body": {
              "id": 10915,
              "nodeType": "Block",
              "src": "11838:102:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10906,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10894,
                            "src": "11864:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10905,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "11856:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 10907,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11856:16:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 10908,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11874:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 10904,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11848:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10909,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11848:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10910,
                  "nodeType": "ExpressionStatement",
                  "src": "11848:46:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10912,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10894,
                        "src": "11925:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10911,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "11911:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory,uint256[] memory)"
                      }
                    },
                    "id": 10913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11911:22:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                      "typeString": "tuple(address payable[] memory,uint256[] memory)"
                    }
                  },
                  "functionReturnParameters": 10903,
                  "id": 10914,
                  "nodeType": "Return",
                  "src": "11904:29:29"
                }
              ]
            },
            "documentation": {
              "id": 10892,
              "nodeType": "StructuredDocumentation",
              "src": "11664:51:29",
              "text": " @dev See {ICreatorCore-getFees}."
            },
            "functionSelector": "d5a06d4c",
            "id": 10916,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFees",
            "nameLocation": "11729:7:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10896,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11776:8:29"
            },
            "parameters": {
              "id": 10895,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10894,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11745:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10916,
                  "src": "11737:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10893,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11737:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11736:17:29"
            },
            "returnParameters": {
              "id": 10903,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10899,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10916,
                  "src": "11794:24:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10897,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11794:15:29",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 10898,
                    "nodeType": "ArrayTypeName",
                    "src": "11794:17:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10902,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10916,
                  "src": "11820:16:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10900,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11820:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10901,
                    "nodeType": "ArrayTypeName",
                    "src": "11820:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11793:44:29"
            },
            "scope": 11073,
            "src": "11720:220:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15154
            ],
            "body": {
              "id": 10937,
              "nodeType": "Block",
              "src": "12120:109:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10928,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10919,
                            "src": "12146:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10927,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "12138:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 10929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12138:16:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 10930,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12156:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 10926,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12130:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12130:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10932,
                  "nodeType": "ExpressionStatement",
                  "src": "12130:46:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10934,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10919,
                        "src": "12214:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10933,
                      "name": "_getRoyaltyReceivers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13186,
                      "src": "12193:20:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory)"
                      }
                    },
                    "id": 10935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12193:29:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                      "typeString": "address payable[] memory"
                    }
                  },
                  "functionReturnParameters": 10925,
                  "id": 10936,
                  "nodeType": "Return",
                  "src": "12186:36:29"
                }
              ]
            },
            "documentation": {
              "id": 10917,
              "nodeType": "StructuredDocumentation",
              "src": "11946:60:29",
              "text": " @dev See {ICreatorCore-getFeeRecipients}."
            },
            "functionSelector": "b9c4d9fb",
            "id": 10938,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeRecipients",
            "nameLocation": "12020:16:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10921,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12076:8:29"
            },
            "parameters": {
              "id": 10920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10919,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12045:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10938,
                  "src": "12037:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10918,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12037:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12036:17:29"
            },
            "returnParameters": {
              "id": 10925,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10924,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10938,
                  "src": "12094:24:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10922,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12094:15:29",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 10923,
                    "nodeType": "ArrayTypeName",
                    "src": "12094:17:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12093:26:29"
            },
            "scope": 11073,
            "src": "12011:218:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15162
            ],
            "body": {
              "id": 10959,
              "nodeType": "Block",
              "src": "12384:103:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10950,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10941,
                            "src": "12410:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10949,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "12402:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 10951,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12402:16:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 10952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12420:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 10948,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12394:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10953,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12394:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10954,
                  "nodeType": "ExpressionStatement",
                  "src": "12394:46:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10956,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10941,
                        "src": "12472:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10955,
                      "name": "_getRoyaltyBPS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13203,
                      "src": "12457:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (uint256[] memory)"
                      }
                    },
                    "id": 10957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12457:23:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 10947,
                  "id": 10958,
                  "nodeType": "Return",
                  "src": "12450:30:29"
                }
              ]
            },
            "documentation": {
              "id": 10939,
              "nodeType": "StructuredDocumentation",
              "src": "12235:53:29",
              "text": " @dev See {ICreatorCore-getFeeBps}."
            },
            "functionSelector": "0ebd4c7f",
            "id": 10960,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeBps",
            "nameLocation": "12302:9:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10943,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12351:8:29"
            },
            "parameters": {
              "id": 10942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10941,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12320:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10960,
                  "src": "12312:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10940,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12312:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12311:17:29"
            },
            "returnParameters": {
              "id": 10947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10946,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10960,
                  "src": "12369:13:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10944,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "12369:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10945,
                    "nodeType": "ArrayTypeName",
                    "src": "12369:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12368:15:29"
            },
            "scope": 11073,
            "src": "12293:194:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15184
            ],
            "body": {
              "id": 10985,
              "nodeType": "Block",
              "src": "12668:111:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10975,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10963,
                            "src": "12694:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10974,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "12686:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 10976,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12686:16:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 10977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12704:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 10973,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12678:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12678:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10979,
                  "nodeType": "ExpressionStatement",
                  "src": "12678:46:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10981,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10963,
                        "src": "12757:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 10982,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10965,
                        "src": "12766:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10980,
                      "name": "_getRoyaltyInfo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13258,
                      "src": "12741:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (address,uint256)"
                      }
                    },
                    "id": 10983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12741:31:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
                      "typeString": "tuple(address,uint256)"
                    }
                  },
                  "functionReturnParameters": 10972,
                  "id": 10984,
                  "nodeType": "Return",
                  "src": "12734:38:29"
                }
              ]
            },
            "documentation": {
              "id": 10961,
              "nodeType": "StructuredDocumentation",
              "src": "12497:55:29",
              "text": " @dev See {ICreatorCore-royaltyInfo}."
            },
            "functionSelector": "2a55205a",
            "id": 10986,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "royaltyInfo",
            "nameLocation": "12566:11:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10967,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12632:8:29"
            },
            "parameters": {
              "id": 10966,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10963,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12586:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10986,
                  "src": "12578:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10962,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12578:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10965,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "12603:5:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 10986,
                  "src": "12595:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10964,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12595:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12577:32:29"
            },
            "returnParameters": {
              "id": 10972,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10969,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10986,
                  "src": "12650:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10968,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12650:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10971,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10986,
                  "src": "12659:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10970,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12659:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12649:18:29"
            },
            "scope": 11073,
            "src": "12557:222:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1580
            ],
            "body": {
              "id": 11006,
              "nodeType": "Block",
              "src": "12934:98:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10997,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10989,
                            "src": "12960:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10996,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "12952:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 10998,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12952:16:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 10999,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12970:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 10995,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12944:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 11000,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12944:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11001,
                  "nodeType": "ExpressionStatement",
                  "src": "12944:46:29"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11003,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10989,
                        "src": "13017:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 11002,
                      "name": "_tokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13017,
                      "src": "13007:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (uint256) view returns (string memory)"
                      }
                    },
                    "id": 11004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13007:18:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 10994,
                  "id": 11005,
                  "nodeType": "Return",
                  "src": "13000:25:29"
                }
              ]
            },
            "documentation": {
              "id": 10987,
              "nodeType": "StructuredDocumentation",
              "src": "12786:55:29",
              "text": " @dev See {IERC721Metadata-tokenURI}."
            },
            "functionSelector": "c87b56dd",
            "id": 11007,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenURI",
            "nameLocation": "12855:8:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10991,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12901:8:29"
            },
            "parameters": {
              "id": 10990,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10989,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12872:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 11007,
                  "src": "12864:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10988,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12864:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12863:17:29"
            },
            "returnParameters": {
              "id": 10994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10993,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11007,
                  "src": "12919:13:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10992,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "12919:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12918:15:29"
            },
            "scope": 11073,
            "src": "12846:186:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15190
            ],
            "body": {
              "id": 11020,
              "nodeType": "Block",
              "src": "13184:51:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11017,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11010,
                        "src": "13218:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 11016,
                      "name": "_setApproveTransferBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13454,
                      "src": "13194:23:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 11018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13194:34:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11019,
                  "nodeType": "ExpressionStatement",
                  "src": "13194:34:29"
                }
              ]
            },
            "documentation": {
              "id": 11008,
              "nodeType": "StructuredDocumentation",
              "src": "13038:62:29",
              "text": " @dev See {ICreatorCore-setApproveTransfer}."
            },
            "functionSelector": "596798ad",
            "id": 11021,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11014,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11013,
                  "name": "adminRequired",
                  "nameLocations": [
                    "13170:13:29"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "13170:13:29"
                },
                "nodeType": "ModifierInvocation",
                "src": "13170:13:29"
              }
            ],
            "name": "setApproveTransfer",
            "nameLocation": "13114:18:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11012,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13161:8:29"
            },
            "parameters": {
              "id": 11011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11010,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "13141:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 11021,
                  "src": "13133:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11009,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13133:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13132:19:29"
            },
            "returnParameters": {
              "id": 11015,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13184:0:29"
            },
            "scope": 11073,
            "src": "13105:130:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13472
            ],
            "body": {
              "id": 11052,
              "nodeType": "Block",
              "src": "13323:175:29",
              "statements": [
                {
                  "assignments": [
                    11030
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 11030,
                      "mutability": "mutable",
                      "name": "extensionIndex",
                      "nameLocation": "13340:14:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 11052,
                      "src": "13333:21:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      },
                      "typeName": {
                        "id": 11029,
                        "name": "uint16",
                        "nodeType": "ElementaryTypeName",
                        "src": "13333:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 11038,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "baseExpression": {
                            "id": 11033,
                            "name": "_tokenData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19837,
                            "src": "13364:10:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TokenData_$19832_storage_$",
                              "typeString": "mapping(uint256 => struct ERC721Core.TokenData storage ref)"
                            }
                          },
                          "id": 11035,
                          "indexExpression": {
                            "id": 11034,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11023,
                            "src": "13375:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13364:19:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenData_$19832_storage",
                            "typeString": "struct ERC721Core.TokenData storage ref"
                          }
                        },
                        "id": 11036,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "13384:4:29",
                        "memberName": "data",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19831,
                        "src": "13364:24:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      ],
                      "id": 11032,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13357:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint16_$",
                        "typeString": "type(uint16)"
                      },
                      "typeName": {
                        "id": 11031,
                        "name": "uint16",
                        "nodeType": "ElementaryTypeName",
                        "src": "13357:6:29",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 11037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13357:32:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13333:56:29"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    },
                    "id": 11041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11039,
                      "name": "extensionIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11030,
                      "src": "13403:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 11040,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13421:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13403:19:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11047,
                  "nodeType": "IfStatement",
                  "src": "13399:42:29",
                  "trueBody": {
                    "expression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 11044,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13439:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 11043,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "13431:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 11042,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "13431:7:29",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 11045,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13431:10:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "functionReturnParameters": 11028,
                    "id": 11046,
                    "nodeType": "Return",
                    "src": "13424:17:29"
                  }
                },
                {
                  "expression": {
                    "baseExpression": {
                      "id": 11048,
                      "name": "_indexToExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13895,
                      "src": "13458:17:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint16_$_t_address_$",
                        "typeString": "mapping(uint16 => address)"
                      }
                    },
                    "id": 11050,
                    "indexExpression": {
                      "id": 11049,
                      "name": "extensionIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11030,
                      "src": "13476:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13458:33:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 11028,
                  "id": 11051,
                  "nodeType": "Return",
                  "src": "13451:40:29"
                }
              ]
            },
            "id": 11053,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tokenExtension",
            "nameLocation": "13250:15:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11025,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13297:8:29"
            },
            "parameters": {
              "id": 11024,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11023,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13274:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 11053,
                  "src": "13266:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11022,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13266:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13265:17:29"
            },
            "returnParameters": {
              "id": 11028,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11027,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11053,
                  "src": "13314:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13314:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13313:9:29"
            },
            "scope": 11073,
            "src": "13241:257:29",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15406
            ],
            "body": {
              "id": 11071,
              "nodeType": "Block",
              "src": "13635:62:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "id": 11068,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "baseExpression": {
                              "id": 11063,
                              "name": "_tokenData",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19837,
                              "src": "13659:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TokenData_$19832_storage_$",
                                "typeString": "mapping(uint256 => struct ERC721Core.TokenData storage ref)"
                              }
                            },
                            "id": 11065,
                            "indexExpression": {
                              "id": 11064,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11056,
                              "src": "13670:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "13659:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenData_$19832_storage",
                              "typeString": "struct ERC721Core.TokenData storage ref"
                            }
                          },
                          "id": 11066,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "13679:4:29",
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19831,
                          "src": "13659:24:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "3136",
                          "id": 11067,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13687:2:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_16_by_1",
                            "typeString": "int_const 16"
                          },
                          "value": "16"
                        },
                        "src": "13659:30:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      ],
                      "id": 11062,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13652:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint80_$",
                        "typeString": "type(uint80)"
                      },
                      "typeName": {
                        "id": 11061,
                        "name": "uint80",
                        "nodeType": "ElementaryTypeName",
                        "src": "13652:6:29",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 11069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13652:38:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "functionReturnParameters": 11060,
                  "id": 11070,
                  "nodeType": "Return",
                  "src": "13645:45:29"
                }
              ]
            },
            "documentation": {
              "id": 11054,
              "nodeType": "StructuredDocumentation",
              "src": "13504:59:29",
              "text": " @dev See {IERC721CreatorCore-tokenData}."
            },
            "functionSelector": "b4b5b48f",
            "id": 11072,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenData",
            "nameLocation": "13577:9:29",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11057,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11056,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13595:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 11072,
                  "src": "13587:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11055,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13587:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13586:17:29"
            },
            "returnParameters": {
              "id": 11060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11059,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11072,
                  "src": "13627:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 11058,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "13627:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13626:8:29"
            },
            "scope": 11073,
            "src": "13568:129:29",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 11074,
        "src": "305:13394:29",
        "usedErrors": []
      }
    ],
    "src": "33:13666:29"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.707Z",
  "devdoc": {
    "details": "ERC721Creator implementation",
    "events": {
      "Approval(address,address,uint256)": {
        "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token."
      },
      "ApprovalForAll(address,address,bool)": {
        "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
      },
      "Initialized(uint8)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      },
      "Transfer(address,address,uint256)": {
        "details": "Emitted when `tokenId` token is transferred from `from` to `to`."
      }
    },
    "kind": "dev",
    "methods": {
      "approve(address,uint256)": {
        "details": "See {IERC721-approve}."
      },
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "balanceOf(address)": {
        "details": "See {IERC721-balanceOf}."
      },
      "blacklistExtension(address)": {
        "details": "See {ICreatorCore-blacklistExtension}."
      },
      "burn(uint256)": {
        "details": "See {IERC721CreatorCore-burn}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "getApproveTransfer()": {
        "details": "See {ICreatorCore-getApproveTransfer}."
      },
      "getApproved(uint256)": {
        "details": "See {IERC721-getApproved}."
      },
      "getExtensions()": {
        "details": "See {ICreatorCore-getExtensions}."
      },
      "getFeeBps(uint256)": {
        "details": "See {ICreatorCore-getFeeBps}."
      },
      "getFeeRecipients(uint256)": {
        "details": "See {ICreatorCore-getFeeRecipients}."
      },
      "getFees(uint256)": {
        "details": "See {ICreatorCore-getFees}."
      },
      "getRoyalties(uint256)": {
        "details": "See {ICreatorCore-getRoyalties}."
      },
      "isAdmin(address)": {
        "details": "See {IAdminControl-isAdmin}."
      },
      "isApprovedForAll(address,address)": {
        "details": "See {IERC721-isApprovedForAll}."
      },
      "mintBase(address)": {
        "details": "See {IERC721CreatorCore-mintBase}."
      },
      "mintBase(address,string)": {
        "details": "See {IERC721CreatorCore-mintBase}."
      },
      "mintBaseBatch(address,string[])": {
        "details": "See {IERC721CreatorCore-mintBaseBatch}."
      },
      "mintBaseBatch(address,uint16)": {
        "details": "See {IERC721CreatorCore-mintBaseBatch}."
      },
      "mintExtension(address)": {
        "details": "See {IERC721CreatorCore-mintExtension}."
      },
      "mintExtension(address,string)": {
        "details": "See {IERC721CreatorCore-mintExtension}."
      },
      "mintExtension(address,uint80)": {
        "details": "See {IERC721CreatorCore-mintExtension}."
      },
      "mintExtensionBatch(address,string[])": {
        "details": "See {IERC721CreatorCore-mintExtensionBatch}."
      },
      "mintExtensionBatch(address,uint16)": {
        "details": "See {IERC721CreatorCore-mintExtensionBatch}."
      },
      "mintExtensionBatch(address,uint80[])": {
        "details": "See {IERC721CreatorCore-mintExtensionBatch}."
      },
      "name()": {
        "details": "See {IERC721Metadata-name}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "ownerOf(uint256)": {
        "details": "See {IERC721-ownerOf}."
      },
      "registerExtension(address,string)": {
        "details": "See {ICreatorCore-registerExtension}."
      },
      "registerExtension(address,string,bool)": {
        "details": "See {ICreatorCore-registerExtension}."
      },
      "renounceOwnership()": {
        "details": "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."
      },
      "revokeAdmin(address)": {
        "details": "See {IAdminControl-revokeAdmin}."
      },
      "royaltyInfo(uint256,uint256)": {
        "details": "See {ICreatorCore-royaltyInfo}."
      },
      "safeTransferFrom(address,address,uint256)": {
        "details": "See {IERC721-safeTransferFrom}."
      },
      "safeTransferFrom(address,address,uint256,bytes)": {
        "details": "See {IERC721-safeTransferFrom}."
      },
      "setApprovalForAll(address,bool)": {
        "details": "See {IERC721-setApprovalForAll}."
      },
      "setApproveTransfer(address)": {
        "details": "See {ICreatorCore-setApproveTransfer}."
      },
      "setApproveTransferExtension(bool)": {
        "details": "See {ICreatorCore-setApproveTransferExtension}."
      },
      "setBaseTokenURI(string)": {
        "details": "See {ICreatorCore-setBaseTokenURI}."
      },
      "setBaseTokenURIExtension(string)": {
        "details": "See {ICreatorCore-setBaseTokenURIExtension}."
      },
      "setBaseTokenURIExtension(string,bool)": {
        "details": "See {ICreatorCore-setBaseTokenURIExtension}."
      },
      "setMintPermissions(address,address)": {
        "details": "See {ICreatorCore-setMintPermissions}."
      },
      "setRoyalties(address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyalties}."
      },
      "setRoyalties(uint256,address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyalties}."
      },
      "setRoyaltiesExtension(address,address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyaltiesExtension}."
      },
      "setTokenURI(uint256,string)": {
        "details": "See {ICreatorCore-setTokenURI}."
      },
      "setTokenURI(uint256[],string[])": {
        "details": "See {ICreatorCore-setTokenURI}."
      },
      "setTokenURIExtension(uint256,string)": {
        "details": "See {ICreatorCore-setTokenURIExtension}."
      },
      "setTokenURIExtension(uint256[],string[])": {
        "details": "See {ICreatorCore-setTokenURIExtension}."
      },
      "setTokenURIPrefix(string)": {
        "details": "See {ICreatorCore-setTokenURIPrefix}."
      },
      "setTokenURIPrefixExtension(string)": {
        "details": "See {ICreatorCore-setTokenURIPrefixExtension}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "symbol()": {
        "details": "See {IERC721Metadata-symbol}."
      },
      "tokenData(uint256)": {
        "details": "See {IERC721CreatorCore-tokenData}."
      },
      "tokenExtension(uint256)": {
        "details": "See {IERC721CreatorCore-tokenExtension}."
      },
      "tokenURI(uint256)": {
        "details": "See {IERC721Metadata-tokenURI}."
      },
      "transferFrom(address,address,uint256)": {
        "details": "See {IERC721-transferFrom}."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      },
      "unregisterExtension(address)": {
        "details": "See {ICreatorCore-unregisterExtension}."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "initialize(string,string)": {
        "notice": "Initializer"
      }
    },
    "version": 1
  }
}